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 公用程式類別
- 新成果!包含新的API,同時支援本機與裝置上的裝置測試功能:
- 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}類別
- 破壞性API變更:
- Espresso-remote
- 這是全新成果。我們將Espresso的所有多工處理函式解耦到espresso-core成果之外。這是比較簡潔的做法,而且應該會顯著減少espresso-core的整體尺寸和方法數量。
- 執行器
- 規則
- 生命週期更改後,確保釋出有關被測試活動的參考。在測試期間,現在可以使用從#getActivity()獲得的引用直接操作活動,如果活動完成並重新啟動,#getActivity()返回的引用現在總是指向活動的目前執行個體。
- 問題64389280:GrantPermissionRule不提供WRITE_EXTERNAL_STORAGE
- 問題37065965:ActivityTestRule 會在螢幕方向改變後外洩活動
- 問題75254050:ActivityTestRule不會在設定變更時更新活動執行個體
- 問題 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
模組的依附元件。已新增旗標
newRunListenerOrderMode
。true
時,使用者定義的事件監聽器會在預設事件監聽器之前執行。(我們預期這個行為最終將成為預設選項。)問題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()
。 - 問題64024656、64247586和64525881:除非使用者透過包含
-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.support.test.espresso.contrib.CountingIdlingResource
類別已遭刪除,並移至android.support.test.espresso.idling.CountingIdlingResource
- Guava 現已淘汰到不同的「內部」命名空間;如果您意外透過 Espresso 命名空間使用 Guava API,則可能會看到服務中斷情形
- 移除對陰影 Guava 的任何參照(
.core.deps.guava.
) - 將您的支援資料庫的版本升級至25.4.0或以上的版本
- 移除對陰影 Guava 的任何參照(
- 已淘汰的
已知問題
- Android Test Orchestrator
- 目前不支援
-e numShards
和-e shardIndex
執行器引數 - 目前不支援參數化測試
新功能
- Espresso
- 新的Multiprocess EspressoAPI 26支援
espresso-core
和espresso-web
,但不支援espresso-contrib
- 全新輕量級
IdlingRegistry
API- 作為
com.android.support.test.espresso:espresso-idling-resource:3.0.0
的一部分發布 - 已淘汰的方法:
- 作為
- 新的API來協助與
Executors
進行同步處理- 新的Maven成果:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0
- 包含
IdlingScheduledThreadPoolExecutor
和IdlingThreadPoolExecutor
類別
- 新的Maven成果:
- 新的API可協助您針對網路要求和回應進行同步處理。
- 新的Maven成果:
com.android.support.test.espresso.idling:idling-net:3.0.0
- 包含
UriIdlingResource
類別
- 新的Maven成果:
- 新的
espresso-core
檢視比對器:hasBackground()
與View
物件的背景可繪製資源相符hasTextColor()
與TextView
物件的顏色相符
- 新的檢視畫面動作方法:
- 增強
scrollTo()
檢視操作以與ListView
的子系搭配使用 repeatedlyUntil()
- 對資料檢視執行指定的ViewAction
,直到資料檢視與所需相符ViewMatchers
- 增強
- 新的 Espresso 方法:
pressBackUnconditionally()
:與pressBack()
類似,但在Espresso導航時不會擲回例外狀況noActivity()
-在執行ViewAction
或ViewAssertion
之前,不需要等待活動onIdle()
-在應用程式閒置時循環主執行緒onIdle(Callable<T>)
:與onIdle()
相同,但必須使用應用程式閒置後執行的額外的Callable
做為參數
webScrollIntoView()
- 新的espresso-web
Atom,可讓您在WebView
內捲動
- 新的Multiprocess EspressoAPI 26支援
- 執行器
-
InterceptingActivityFactory
和SingleActivityFactory
:提供一項隔離的活動測試工具,負責測試您在覆寫startService()
和sendBroadcast()
等方法 -
新增支援將 JUnitParams 與
AndroidJUnitRunner
搭配使用的功能 -
開始處理在核心測試執行器級別的
@UiThreadTest
。並淘汰@UiThreadTestRule
–這使得可以直接在使用@Before
和@After
註解的方法上使用@UiThreadTest
註解 -
@SdkSupress
註解現已支援maxSdkVersion
值(問題)37067792) -
-e classLoader
-提供使用執行器引數傳遞類別載入器的功能 -
-e filter
-新增對使用執行器引數指定的自訂JUnit篩選器的支援 -
-e runnerBuilder
-讓開發人員自行提供RunnerBuilder
的實作方式,藉此判斷他們是否能在特定類別上執行,以及如何執行
-
- 規則
ProviderTestRule
:用於測試ContentProvider
物件的新的 APIgetActivityResult()
和ActivityResultMatchers
:新的 API 可擷取名為setResult()
的活動的活動結果
- AndroidTestOrchestrator
- Android Test Orchestrator可讓您透過全新方式收集和執行測試,並著重於修正和隔離問題。Orchestrator是獨立的檢測程序,每次測試會產生一個檢測執行器程序,並收集結果。
- 應用程式當機功能會將執行器檢測作業移除,而非自動化調度管理工具,因此讓測試套件繼續
- 需要安裝自動化調度管理APK-
'com.android.support.test:orchestrator:1.0.0'
- 1.0版只有指令列介面;已規劃與Android Studio和Firebase Test Lab整合
- Android Test Orchestrator可讓您透過全新方式收集和執行測試,並著重於修正和隔離問題。Orchestrator是獨立的檢測程序,每次測試會產生一個檢測執行器程序,並收集結果。
修正錯誤
- Espresso
- 改善根視圖同步處理功能以顯著減少片狀現象
- 修正「
IdlingResourceRegistry
」的損毀 - 更有效地同步處理
IdlingResource
物件 - 問題 37132680:Espresso 不用等待對話方塊建立完成,才能進行下一個動作
- 問題 37103280:Espresso 應運送 ProGuard 消費者規則,讓消費者不必加入規則
- 問題 37094726:Espresso Intent 包含不必要的應用程式標籤
- 問題 37093953:Espresso:沒有可用的空值/空白錯誤文字檢查
- 問題 37071776:
espresso-core
嵌入了 Guava 的.pom
檔案 - 問題 37062612:
release()
中的 NPE - 問題 37063389:將 Guava 和
espresso-web
作為androidTest
依附元件無法編譯 - 問題 37070533:在 Android 設計支援資料庫中新增對
NavigationView
的支援。
- 執行器
-
修正將
@UiThreadTest
與@Test(timeout = 123)
搭配使用的功能 - 已修正
-e notClass
個執行器引數 - 固定
-e log
支援 JUnit3 和 JUnit4 測試套件,以及Parameterized
和Enclosed
執行器 - 問題37663530:等待所有活動都結束之前和之後完成的測試方法
- 問題37132680:Espresso在執行下一個動作之前不會等待對話方塊建立完成
-
問題37123213:在x86_64 ABI上忽略
@RequiresDevice
-
問題37101485:部分資訊清單提供的引數
AndroidJUnitRunner
例如測試大小、註解和偵錯等被忽略 - 問題37082857:靜態物件上的Espresso半平行測試執行失敗
-
問題37063396:內容未使用
ProviderTestCase2
初始化(原因:NullPointerException
)
-
修正將
- 規則
- 修正
ActivityTestRule
生命週期,以便整合一般和延遲ActivityTestRule
初始化的行為 - 問題37079943:修正
ServiceTestRule
以允許重新繫結 - 問題37109342:新增
getActivityResult()
和ActivityResultMatchers
- 修正
- UiAutomator
setUiAutomationFlags()
可與UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
搭配使用:這項操作會允許UiAutomator
在執行其他無障礙服務期間使用- 問題37082813:如果API等級為19以下,
setText()
留空EditText
物件擲回NullPointerException
其他顯著異動
- 系統現在會透過Google Maven發布二進位檔
- 縮減
espresso-core
和espresso-web
JAR檔案的大小 - 內嵌依附元件現已套用ProGuard - 全部
.aar
個檔案現在都會包含 ProGuard 規則 - 將
proguard_library.cfg
個檔案新增至已發布的成果 Tapper
介面已推出新版的sendTap()
外部貢獻
- Espresso
- 執行器
- 規則
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
- 規則
- 問題 187249:
Intents.release()
中的 NPE
- 問題 187249:
- 執行器
- 問題 196066:
AndroidJUnitRunner
中的-e log true
引數無法略過實際測試 - 等待
onCreate()
執行器的偵錯工具 - 將所有受支持的測試註解移出平台並進入ATSL
- 已移除沒有JSBridge的堆疊追蹤傾印
- 已修正
AndroidAnnotatedBuilder
- 問題 196066:
其他顯著異動
ActivityTestRule
、UiThreadTestRule
、IntentsTestRule
和ServiceTestRule
已通過測試階段- 新增程式碼樣式設定檔,以採用統一的程式碼格式
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
修正錯誤
- espresso
ViewActions.closeSoftKeyboard()
現在會確保螢幕鍵盤已完全消失- 已修正Espresso
Espresso.pressBack()
方法在 API 級別 21 及以上的問題中的同步處理問題 - 已修正 API 級別 23 鍵盤關閉動畫的同步處理作業
- 規則
- 在 API 級別 23 已修正
ServiceTestRule
,startService()
一律必須加上明確的Intent
呼叫
- 在 API 級別 23 已修正
- 執行器
- 已修正損毀的 Gradle
JaCoCo
支援 - 修正損壞的資料分割測試支援
- 修正了
JUnit3
樣式測試逾時後測試運行器中的不一致問題
- 已修正損毀的 Gradle
其他顯著異動
- 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.2
和com.android.support.test:rules:0.2
。
新功能
- espresso-intents:這是 Mockito 型的 API,可讓測試作者驗證及擷取傳出意圖,以便啟用密封互動測試。
IntentsTestRule
:擴充ActivityTestRule
、初始化及發布功能性使用者介面測試中的 Espresso-Intent
- espresso-core
ViewActions
:新增了在執行操作之前可執行全局斷言的能力。這對於構建在 Espresso 之上的其他架構很有用,以在執行現有 Espresso 測試套件時驗證檢視區塊階層結構的狀態。ViewMatchers.withContentDescription()
resId
超載
- 規則
ActivityTestRule
:這項規則針對單一活動提供功能測試UiThreadRule
和UiThreadTest
註解:這項規則可讓以UiThreadTest
加註的測試方法,在應用程式的主要執行緒 (或 UI 執行緒) 上執行ServiceTestRule
:這項規則提供服務的功能測試
- 執行器
ApplicationLifecycleCallback
:監控應用程式生命週期事件的回呼- 您現在也可以使用
<meta-data>
標籤在 Android 資訊清單檔案中指定所有執行器引數
- UIAutomator
UiDevice.dumpWindowHierarchy()
現在可以接受File
或OutputStream
修正錯誤
- espresso
- 如果找不到該資料欄,游標比對器現在會傳回
false
,讓 Hamcrest 繼續處理下一個游標 - 包含
PreferenceMatchers
withTitle
的NullPointerException
已不會出現 - 取消註冊閒置資源後,不再使用 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.espresso
到android.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
:處理與Date
和Time
挑選器的互動
- 比對器
RootMatchers
isPlatformPopup()
ViewMatchers
isJavascriptEnabled()
withSpinnerText()
withHint()
isSelected()
hasLinks()
LayoutMatchers
:用於 i18n 相關版面配置測試的比對器CursorMatchers
:Cursor
物件的比對器系列
- 斷言
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
- 新的
swipeLeft
和swipeRight
ViewActions
- 支援多視窗模式:這項進階功能可讓您選擇目標視窗執行 Espresso 執行作業時的目標位置
- 改善
TypeTextAction
:允許在預先對焦檢視模式中輸入文字,更輕鬆地附加文字 - 修正許多錯誤
Espresso Contrib 程式庫
- 這個新的程式庫包含補充 Espresso 的功能,但不屬於核心程式庫的一部分
- 在
DrawerLayout
上運作的新DrawerActions
:具有與 Android 支援資料庫的相依關係,因此我們會將其保留在核心 Espresso 程式庫之外
測試範例
- 這些測試已重新定位到與測試應用程式相同的套件中
- 已修正 Maven POM 以移除重複的 Guava 下降作業,因此
mvn install
應該能正常運作