測試版本資訊封存

AndroidX Test Espresso 3.1.1、Runner 1.1.1、Rule 1.1.1、Monitor 1.1.1 AndroidTestOrchestrator 1.1.1、Core 1.1.0、Truth 1.1.0、JUnit 1.1.0 (2018-12-13)

這是穩定版本的 AndroidX Test 1.1.0

  • 核心
    • 讓ActivityScenario支援開始執行其他活動的活動

AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01, Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta01, JUnit 1.1.0-beta01 (2018-12-06)

  • 核心
    • 全新Core-ktx Kotlin擴充功能成果!包括對Kotlin 友好的ActivityCase.launchActivity API
    • 用於啟動具有自訂意願的活動的New ActivityScenario
    • 用於接收Activity 結果的New ActivityScenario API
    • 將ActivityScenario設為可關閉
  • Espresso
    • 使用ResourceResourceMatcher和HumanReadables修改,使其與API 28相容。
    • 更新ReplaceTextAction的說明,以包含stringToBeSet
    • 支援在Robolectric 暫停循環模式下使用Espresso。
  • JUnit
    • New ActivityScenarioRule API用於在測試設置和拆卸時自動啟動和關閉
    • New junit-ktx kotlin擴充功能成果!包括對Kotlin友好的ActivityCaseRule API
  • 執行器
    • 接收套件時讓-e套件和-e testFile的運作方式相同
  • Truth
    • 新增bool、parcelable和parcelableAsType BundleSubject API

AndroidX Test Espresso 3.1.0、Runner 1.1.0、Rule 1.1.0、Monitor 1.1.0 AndroidTestOrchestrator 1.1.0、Core 1.0.0 Truth 1.0.0、JUnit 1.0.0 (2018-10-24)

  • 全部
    • 將minSdkVersion設為14,targetSdkVersion設為28
  • Espresso
    • 使用ContentDescription進行修正,以處理非字串類型
    • 支援在Robolectric上使用Espresso
    • 問題72798625:啟用textAllCaps時,Espresso ViewMatchers.withText無法正常運作
    • 新增對插入一系列動作事件的支援
  • 意圖
    • 新增Beta版API以擷取意圖清單。目的在於與新的可靠聲明一起使用
  • 執行器
    • 新增對免安裝應用程式的支援
    • 淘汰androidx.test.Runner.AndroidJUnit4,並替換為androidx.test.ext.junit.Runners.AndroidJUnit4
  • 監控
    • 淘汰androidx.test.InstrumentationRegistry和androidx.test.platform.應用程式InstrumentationRegistry和androidx.test.核心應用程式.ApplicationProvider
  • AndroidTestOrchestrator
    • 只有在同時傳遞「coverage」和「coverageFilePath」參數時,才啟用自動化調度管理工具涵蓋範圍處理。
    • 只有在偵錯設定完成時,才需要等待偵錯工具,但不要列出ATO測試案例。新增用於偵錯自動化調度管理工具本身的自動化調度管理工具偵錯標記
  • 核心
    • 新成果!包含新的API,同時支援本機與裝置上的裝置測試功能:
      • 擷取結構定義:ApplicationProvider
      • 控管活動生命週期:Activity情境(Beta版)
      • MotionEvent、PackageInfo的建構工具
      • Parceables 公用程式類別
  • Truth
    • 新成果!包括通知、意圖、套裝組合、Parcelable和MotionEvent自訂值
  • JUnit
    • 新成果!包括支援本機與裝置上的測試的JUnit執行器類別androidx.test.ext.junit.Runners.AndroidJUnit4。

Espresso 3.0.2-beta1、Runner 1.0.2-beta1、Rule 1.0.2-beta1、Monitor 1.0.2-beta1、AndroidTestOrchestrator 1.0.2-beta1(2018-04-16)

  • Espresso
    • 破壞性API變更:
      • 在問題64062890中引起了我們的注意,這是在我們公開的API中使用了Guava Optional。這對我們來說是一個可怕的疏忽。因此,這個版本有重大的公開API變更資訊來解決這個問題。我們推出了在Guava Optional類別周圍加入醜陋的包裝函式,名為 EspressoOptional,其位在「android.support.test.espresso.util」命名空間下。使用洩露的Guava Optional API的開發人員需要在更新到此新版本期間更改其匯入和引用以使用EspressoOptional。不便之處,敬請見諒。
    • onView()和onData()API現已標示為@CheckReturnValue以避免錯誤
    • 已修正espresso-core POM檔案以不引入「規則」依附元件,而是讓espresso-intents POM來提取。這對開發人員來說,這應該是一個NoOp更改,因為沒有espresso-core就無法使用espresso-intents。
    • 問題65486414:Espresso缺少Guava依附元件
    • 問題65576174:Espresso IdlingResourceRegistry.sync會造成第二次測試失敗
    • 問題65568629:Espresso.onIdle未使用IdlingRegistry
    • 問題69333598:espresso3.0.1與Android資料庫模組中的play-services-auth:11.6.0不相容。
    • 問題64062890:由AdapterViewProtoco介面顯示的內部選用類型
    • 問題64091847:Espresso 3.0.0「不應」取決於測試執行者
    • 問題73722050:espresso-contrib 3.0.2-alpha1套件 android.arch.{lifecycle/core}類別
  • Espresso-remote
    • 這是全新成果。我們將Espresso的所有多工處理函式解耦到espresso-core成果之外。這是比較簡潔的做法,而且應該會顯著減少espresso-core的整體尺寸和方法數量。
  • 執行器
    • 如果對於活頁夾交易來說太大,則截斷堆疊追蹤記錄。由於AJUR需要透過活頁夾IPC將故障報告回AM,因此我們需要確保不超過Binder交易限制(每個處理1MB)。
    • 問題65828576:使用@Ignore在類別中執行測試時,TestRequestBuilder會當機
    • 問題37057596:我們無法處理@beforeClass中的失敗作業
  • 規則
    • 生命週期更改後,確保釋出有關被測試活動的參考。在測試期間,現在可以使用從#getActivity()獲得的引用直接操作活動,如果活動完成並重新啟動,#getActivity()返回的引用現在總是指向活動的目前執行個體。
    • 問題64389280GrantPermissionRule不提供WRITE_EXTERNAL_STORAGE
    • 問題37065965ActivityTestRule 會在螢幕方向改變後外洩活動
    • 問題75254050ActivityTestRule不會在設定變更時更新活動執行個體
    • 問題 64464625:無法在活動的方法 Finish()中處理UI工作
  • AndroidTestOrchestrator
    • 傳送-e coverage true -e coverageFilePath /sdcard/foo/旗標即可在指定位置產生涵蓋範圍檔案(應用程式必須具備寫入特定位置的權限)。覆蓋檔案命名約定現在看起來像這樣:com.foo.Class#method1.ec。請注意,這項功能只能在隔離模式中執行。而且無法與AndroidJUnitRunner的coverageFile旗標搭配使用。因為產生的覆蓋檔案會覆寫彼此。
    • 如果您希望自動化調度管理工具在測試叫用之間執行pm clear context.getPackageName()pm clear targetContext.getPackageName()指令,請傳遞-e clearPackageData旗標。請注意,明確指令中的結構定義是指測試結構定義下的應用結構定義程式。
    • 已修正-執行空白測試時,aka.,目標中沒有@Test,測試結果與舊模式不同。
    • 問題72758547:測試自動化調度管理工具導致Jacoco涵蓋率資料不完整,只有一個測試執行資料
    • 問題67916042:Android測試自動化調度管理工具:由於 OutOfMemory,在程序當機時停止執行
    • 問題77752735:自動化調度管理工具因TransactionTooLargeException而導致當機
    • 問題77549481:測試自動化調度管理工具應在每次測試後執行「m clear」

Espresso 3.0.2-alpha1、Runner 1.0.2-alpha1、Rule 1.0.2-alpha1、AndroidTestOrchestrator 1.0.2-alpha1 (2017-12-05)

  • Espresso

    • Intents現在有可呼叫的回應,在擷取一個觸發的意圖之後允許測試以執行,但在傳回一個Instrumentation.ActivityResult物件之前。
  • 執行器

    • 分割監控Maven成果com.android.support.test:monitor:<version>,對於需要的使用者MonitoringInstrumentation沒有測試執行和JUnit功能。

      如果您使用com.android.support.test:runner:<version>,則一切都會正常運作,因為Gradle會自動提取monitor模組作為runner模組的依附元件。

    • 已新增旗標newRunListenerOrderModetrue時,使用者定義的事件監聽器會在預設事件監聽器之前執行。(我們預期這個行為最終將成為預設選項。)

    • 問題65828576:在以@Ignore(單獨執行,但未執行測試或JUnit功能)加註的類別中執行測試時,會引發TestRequestBuilder當機。

  • Android Test Orchestrator

    • 現在可按照與非自動化調度管理工具AndroidJUnitRunner相同的方式處理空白測試。
    • Orchestrator現在可以處理來自AndroidJUnitRunner的大型標準輸出。

Espresso 3.0.1、Runner 1.0.1、Rule 1.0.1、AndroidTestOrchestrator 1.0.1(2017-08-28)

  • Espresso

    • 新增IdlingPolicy選項,在步驟步驟偵錯工具附加至VM時抑制onTimeout()
    • 問題640246566424758664525881:除非使用者透過包含-e類別執行者引數來載入特定的類別,否則不要回報不成功類別載入失敗。
    • 問題64877246:在來源JAR檔案中新增缺少的類別。
  • Runner

    • 簡化ShardingFilter邏輯。
    • 問題65025743@RequiresDevice篩選器現在支援FTL模擬器。
  • AndroidTestOrchestrator

    • 請勿重複報告失敗。如果測試程序在失敗後當機,測試中只會回報一次失敗。
    • 已修正適用Orchestrator的Javadoc。
    • 現在,如果遠端處理程序當機,測試就會標示為錯過。
    • 現在控點已忽略的測試案例。
    • 現在從頁腳中排除忽略的測試用例以比對舊版結果。
    • 已修正執行階段權限問題。在Android 7.0(API級別24)及以上的版本作業系統中,測試報表現在會寫入SD卡。

Espresso 3.0.0、Runner 1.0.0、Rule 1.0.0、AndroidTestOrchestrator 1.0.0 (2017-07-25、公告)

破壞性變更

  • 所有成果
    • 停止支援低至15API的API級別;不過,基本SDK仍指向API級別9,讓使用者有時間進行升級。
  • Espresso

已知問題

  • Android Test Orchestrator
  • 目前不支援-e numShards-e shardIndex執行器引數
  • 目前不支援參數化測試

新功能

  • 規則
  • AndroidTestOrchestrator
    • Android Test Orchestrator可讓您透過全新方式收集和執行測試,並著重於修正和隔離問題。Orchestrator是獨立的檢測程序,每次測試會產生一個檢測執行器程序,並收集結果。
      • 應用程式當機功能會將執行器檢測作業移除,而非自動化調度管理工具,因此讓測試套件繼續
      • 需要安裝自動化調度管理APK-'com.android.support.test:orchestrator:1.0.0'
      • 1.0版只有指令列介面;已規劃與Android Studio和Firebase Test Lab整合

修正錯誤

  • Espresso
    • 改善根視圖同步處理功能以顯著減少片狀現象
    • 修正「IdlingResourceRegistry」的損毀
    • 更有效地同步處理 IdlingResource 物件
    • 問題 37132680:Espresso 不用等待對話方塊建立完成,才能進行下一個動作
    • 問題 37103280:Espresso 應運送 ProGuard 消費者規則,讓消費者不必加入規則
    • 問題 37094726:Espresso Intent 包含不必要的應用程式標籤
    • 問題 37093953:Espresso:沒有可用的空值/空白錯誤文字檢查
    • 問題 37071776espresso-core 嵌入了 Guava 的 .pom 檔案
    • 問題 37062612release() 中的 NPE
    • 問題 37063389:將 Guava 和 espresso-web 作為androidTest 依附元件無法編譯
    • 問題 37070533:在 Android 設計支援資料庫中新增對 NavigationView 的支援。

其他顯著異動

  • 系統現在會透過Google Maven發布二進位檔
  • 縮減espresso-coreespresso-webJAR檔案的大小 - 內嵌依附元件現已套用ProGuard
  • 全部 .aar 個檔案現在都會包含 ProGuard 規則
  • proguard_library.cfg 個檔案新增至已發布的成果
  • Tapper 介面已推出新版的 sendTap()

外部貢獻

Espresso 2.2.2,執行者/規則 0.5 (2016-02-22,靜音版本)

新功能

  • espresso
    • 問題194253:在 Android 支援設計資料庫中新增 NavigationView 支援
    • 針對已啟用的動畫和轉場效果新增檢查
    • 新的 ViewMatcher API:withResourceName()

修正錯誤

  • espresso
    • 問題 195331:eespresso-core embeds guava’s pom 檔案
    • 將計數空閒資源移出 espresso-contrib
  • 規則
    • 問題 187249Intents.release() 中的 NPE
  • 執行器
    • 問題 196066:AndroidJUnitRunner 中的 -e log true 引數無法略過實際測試
    • 等待 onCreate() 執行器的偵錯工具
    • 將所有受支持的測試註解移出平台並進入ATSL
    • 已移除沒有JSBridge的堆疊追蹤傾印
    • 已修正AndroidAnnotatedBuilder

其他顯著異動

  • ActivityTestRuleUiThreadTestRuleIntentsTestRuleServiceTestRule已通過測試階段
  • 新增程式碼樣式設定檔,以採用統一的程式碼格式

Espresso 2.2.1, 執行器/規則 0.4 (2015-09-15)

新功能

  • 規則
    • 新增新的 IntentsTestRule 建構函式,使其與 ActivityTestRule 完全相容
  • 執行器
    • 新增 API 級別 15 及以下特別的 Multidex 安裝案例
    • 已在類別和套件中加入排除篩選器:
      • 執除特定類別之外的所有測試:adb shell am instrument -w -e notClass com.android.foo.FooTest
      • 只能執行單一測試:adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
      • 執行特定套件以外的所有測試:adb shell am instrument -w -e notPackage com.android.foo.bar

外部貢獻

  • espresso
    • 157911:新增為 EditText 物件上的輸入類型新增檢視畫面比對器
    • 157912:新增檢視畫面比對器,用於比對 EditText 物件上的錯誤文字
    • 150674:針對具有任意重力的導覽匣新增 DrawerActions 支援
    • 150744DrawerActions已不再外洩parentListener
    • 153303:在「導覽匣是否關閉」檢查中指定的Gravity
    • 157910:新增DrawerLayout開啟和關閉動作係數

修正錯誤

  • espresso
    • ViewActions.closeSoftKeyboard() 現在會確保螢幕鍵盤已完全消失
    • 已修正EspressoEspresso.pressBack()方法在 API 級別 21 及以上的問題中的同步處理問題
    • 已修正 API 級別 23 鍵盤關閉動畫的同步處理作業
  • 規則
    • 在 API 級別 23 已修正 ServiceTestRulestartService() 一律必須加上明確的 Intent 呼叫
  • 執行器
    • 已修正損毀的 Gradle JaCoCo 支援
    • 修正損壞的資料分割測試支援
    • 修正了 JUnit3 樣式測試逾時後測試運行器中的不一致問題

其他顯著異動

  • Javadoc 修正和錯誤訊息改善
  • 忽略 suite() 方法,且使用方法篩選器時,不會忽略 init 錯誤

Espresso 2.2 / ATSL 0.3 (2015-06-09)

新功能

  • espresso-web 2.2
    • 新的「WebView」支援
  • espresso-core 2.2
    • 已遷移至使用 Dagger v2
    • 已遷移至使用 Hahamest v1.3
  • espresso-contrib 2.2
    • 無障礙檢查
    • DrawerActions重力支援
  • 規則 0.3
    • DisableOnAndroidDebug 規則
  • 執行器0.3
    • 從JUnit v4.10升級至JUnit v4.12
    • 遷移至使用Hamcrest v1.3

修正錯誤

  • 已修正DrawerActions外洩的 ParentListener
  • 假設失敗現在被視為忽略測試而不是失敗測試
  • 已修正 MonitoringInstrumentation 透過 ExecutorService 外洩的活動實例
  • 修正孤立活動停在停止階段的問題
  • 如果未產生任何捲動事件,請更新 Until.scrollFinished() 以傳回是。防範 UiObject2#setText() 中的潛在 NPE。

Espresso 2.1、Test Runner/Rules 0.2 和 UIAutomator 2.1.0 (2015-04-21)

破壞性變更

  • 測試執行器成果分為兩個部分,名稱已從 com.android.support.test:testing-support-lib:0.1 變更為 com.android.support.test:runner:0.2com.android.support.test:rules:0.2

新功能

  • espresso-intents:這是 Mockito 型的 API,可讓測試作者驗證及擷取傳出意圖,以便啟用密封互動測試。
    • IntentsTestRule:擴充 ActivityTestRule、初始化及發布功能性使用者介面測試中的 Espresso-Intent
  • espresso-core
    • ViewActions:新增了在執行操作之前可執行全局斷言的能力。這對於構建在 Espresso 之上的其他架構很有用,以在執行現有 Espresso 測試套件時驗證檢視區塊階層結構的狀態。
    • ViewMatchers.withContentDescription() resId 超載
  • 規則
    • ActivityTestRule:這項規則針對單一活動提供功能測試
    • UiThreadRuleUiThreadTest 註解:這項規則可讓以 UiThreadTest 加註的測試方法,在應用程式的主要執行緒 (或 UI 執行緒) 上執行
    • ServiceTestRule:這項規則提供服務的功能測試
  • 執行器
    • ApplicationLifecycleCallback:監控應用程式生命週期事件的回呼
    • 您現在也可以使用 <meta-data> 標籤在 Android 資訊清單檔案中指定所有執行器引數
  • UIAutomator
    • UiDevice.dumpWindowHierarchy() 現在可以接受 FileOutputStream

修正錯誤

  • espresso
    • 如果找不到該資料欄,游標比對器現在會傳回 false,讓 Hamcrest 繼續處理下一個游標
    • 包含 PreferenceMatchers withTitleNullPointerException已不會出現
    • 取消註冊閒置資源後,不再使用 Espresso 認為我們擁有忙碌的閒置資源
    • 更新了 Espresso Contrib 使用的 Support Annotations 版本
  • 執行器
    • AndroidJUnit4現在會略過假設失敗的測試
  • UIAutomator
    • 執行觀影盒以防止 StaleObjectException

其他顯著異動

  • 當我們無法使用非拉丁字元串鍵入文字時新增更好的錯誤訊息

UIAutomator 2.0 (2015-03-12)

UI Automator 現已採用 Android 檢測工具,您可以使用 ./gradlew connectedCheck 指令建構及執行測試。

Espresso 2.0 版,Test Runner 0.1 (發布日期:2014-12-19)

破壞性變更

  • Espresso 已移至新的命名空間 (從 android.support.test.espressoandroid.support.test.espresso)
  • Espresso 成果已重新命名
    • espresso-1.1.jar 現在是 espresso-core-release-2.0.jar
    • IdlingResource 介面已移至獨立的資料庫:espresso-idling-resource-release-2.0.jar
    • CountingIdlingResource 現在位於 espresso-contrib-release-2.0.jar(一如既往)
  • 選用 (一個 guava 依附元件) 已從公開 API 中移除,以支援重新封裝 guava 依附元件並避免 DEX 衝突 (這是開發的主要問題來源)。受影響的方法如下:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

新功能

  • 動作
    • ViewActions
      • replaceText()
      • openLink()
      • 上下滑動
    • espresso-contrib
      • RecyclerViewActions:處理與 RecyclerViews 的互動
      • PickerActions:處理與 DateTime挑選器的互動
  • 比對器
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers:用於 i18n 相關版面配置測試的比對器
    • CursorMatchersCursor 物件的比對器系列
  • 斷言
    • PositionAssertions,包括 isLeftOf()isAbove()ViewAssertions 的 Colleciton,用於檢查螢幕中元素相對的位置
    • LayoutAssertions:i18n 相關版面配置測試的斷言
  • 測試應用程式:許多新的範例活動/測試
  • 其他
    • Espresso.unregisterIdlingResources()Espresso.getIdlingResources():提供更多與 IdlingResources 合作的彈性
    • ViewInteraction.withFailureHandler():允許覆寫來自 onView() 的失敗處理常式
    • onData()支援由CursorAdapters支援的AdapterViews

修正錯誤

  • ViewMatchers.isDisplayed() 會比對佔滿整個螢幕畫面的視圖,但顯示畫面不再低於 90%
  • DrawerActions.openDrawer() 執行滑動動作呼叫後,不再有結果在 IdlingResourceTimeoutException

其他顯著異動

  • 已從使用 Maven 構建切換至 Gradle
  • 將 Espresso 依附元件 (Guava、Dagger、Hamcrest) 移出即可避免產生 DEX 衝突
  • 已變更,以便在註冊及取消註冊閒置資源時傳回成功或失敗
  • Lollipop 支援:將 message.recycle() 置於介面後方,以因應版本相關變更
  • 已將目標 SDK 等級切換為 21 - 主要會影響測試應用程式

1.1 版 (發布日期:2014年1月8日)

Espresso

  • 新的 swipeLeftswipeRight ViewActions
  • 支援多視窗模式:這項進階功能可讓您選擇目標視窗執行 Espresso 執行作業時的目標位置
  • 改善 TypeTextAction:允許在預先對焦檢視模式中輸入文字,更輕鬆地附加文字
  • 修正許多錯誤

Espresso Contrib 程式庫

  • 這個新的程式庫包含補充 Espresso 的功能,但不屬於核心程式庫的一部分
  • DrawerLayout 上運作的新 DrawerActions:具有與 Android 支援資料庫的相依關係,因此我們會將其保留在核心 Espresso 程式庫之外

測試範例

  • 這些測試已重新定位到與測試應用程式相同的套件中
  • 已修正 Maven POM 以移除重複的 Guava 下降作業,因此 mvn install 應該能正常運作