AndroidX Test Espresso 3.1.1、Runner 1.1.1、Rules 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 の安定版リリースです。
- Core
- 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
- 新しい kotlin 拡張アーティファクト core-ktx。kotlin 対応の ActivityScenario.launchActivity API が含まれます。
- カスタム インテントを持つアクティビティを起動するための新しい ActivityScenario API
- アクティビティ結果を受信するための新しい ActivityScenario API
- ActivityScenario をクローズ可能にします。
- Espresso
- withResourceNameMatcher と HumanReadables を API 28 互換に変更
- ReplaceTextAction の説明を、stringToBeSet を含めるようにアップデート
- Robolectric 一時停止ループモードで Espresso をサポート
- JUnit
- 新しい ActivityScenarioRule API。テストのセットアップとティアダウンでアクティビティを自動起動し終了します。
- 新しい kotlin 拡張アーティファクト junit-ktx。kotlin 対応の ActivityScenarioRule API が含まれます。
- Runner
- パッケージ受信時の -e package と -e testFile の動作を一貫させます。
- Truth
- bool、parcelable、parcelableAsType BundleSubject API を追加
AndroidX Test Espresso 3.1.0、Runner 1.1.0、Rules 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
- 非文字列型で機能するように withContentDescription を修正
- Robolectric で Espresso を使用するためのサポートを追加
- 問題 72798625: textAllCaps が有効な場合に Espresso ViewMatchers.withText が機能しない
- モーション イベントのシーケンスを挿入するサポートを追加
- インテント
- インテントのリストを取得するためのベータ版 API を追加。新しい truth アサーションでの使用を対象としています。
- Runner
- Instant Apps のサポートを追加
- androidx.test.runner.AndroidJUnit4 のサポートを終了し、androidx.test.ext.junit.runners.AndroidJUnit4 に置き換え
- Monitor
- androidx.test.InstrumentationRegistry のサポートを終了し、androidx.test.platform.app.InstrumentationRegistry と androidx.test.core.app.ApplicationProvider に置き換え
- AndroidTestOrchestrator
- coverage 引数と coverageFilePath 引数の両方が渡された場合にのみ、オーケストレータ カバレッジ処理を有効にします。
- -debug が設定されている場合にのみデバッガを待機し、ATO テストケースのリスティングでは待機しません。オーケストレータ自体のデバッグ用に新しい orchestratorDebug フラグが追加されました。
- Core
- 新しいアーティファクト。ローカルテストとデバイス上のテストの両方をサポートする新しい API が含まれます。
- コンテキストの取得: ApplicationProvider
- アクティビティのライフサイクルの管理: ActivityScenario(ベータ版)
- MotionEvent、PackageInfo のビルダー
- Parceables ユーティリティ クラス
- 新しいアーティファクト。ローカルテストとデバイス上のテストの両方をサポートする新しい API が含まれます。
- Truth
- 新しいアーティファクト。Notification、Intent、Bundle、Parcelable、MotionEvent のカスタム truth サブジェクトが含まれます。
- JUnit
- 新しいアーティファクト。ローカルテストとデバイス上のテストの両方をサポートする JUnit ランナークラス androidx.test.ext.junit.runners.AndroidJUnit4 が含まれます。
Espresso 3.0.2-beta1、Runner 1.0.2-beta1、Rules 1.0.2-beta1、Monitor 1.0.2-beta1、AndroidTestOrchestrator 1.0.2-beta1(2018 年 04 月 16 日)
- Espresso
- API の互換性を破る変更:
- 問題 64062890 により、公開 API で Guava Optional を使用していたことが報告されました。これは Google にとって重大な見落としでした。その結果このリリースでは、この問題に対処するために互換性を破る変更が公開 API に加えられています。「android.support.test.espresso.util」名前空間の下にある EspressoOptional という名前の Guava Optional クラスの周りにラッパーを導入しました。リークした Guava Optional API を使用していた開発者は、この新しいバージョンへのアップデートの際、EspressoOptional を使用するようにインポートと参照を変更する必要があります。ご不便をおかけして申し訳ございません。
- onView() API と onData() API は、エラーを防ぐために @CheckReturnValue とマークされるようになりました。
- 「ルール」依存関係を pull せず、代わりに espresso-intents POM で pull するように、espresso-core POM ファイルを修正しました。espresso-intents は espresso-core なしでは使用できないため、これは開発者にとって NoOp の変更になります。
- 問題 65486414: Espresso に guava の依存関係がない
- 問題 65576174: Espresso IdlingResourceRegistry.sync で 2 回目のテストが失敗する
- 問題 65568629: Espresso.onIdle が IdlingRegistry を使用していない
- 問題 69333598: espresso 3.0.1 が、Android ライブラリ モジュールの play-services-auth:11.6.0 と互換性がない
- 問題 64062890: 内部オプション タイプが AdapterViewProtocol インターフェースで公開される
- 問題 64091847: Espresso 3.0.0 はテストランナーに依存すべきでない
- 問題 73722050: espresso-contrib 3.0.2-alpha1 で android.arch.{lifecycle/core} クラスをパッケージ化
- API の互換性を破る変更:
- Espresso-remote
- まったく新しいアーティファクトです。espresso-core アーティファクト以外の Espresso のマルチプロセス機能をすべて分離しました。これにより、espresso-core の全体的なサイズとメソッド数が大幅に削減されます。
- Runner
- Rules
- ライフサイクルの変更後、テスト対象のアクティビティに関する参照を必ずリリースします。テスト中、#getActivity() から取得した参照を使用してアクティビティを直接操作できるようになりました。アクティビティが終了して再起動すると、#getActivity() によって返される参照は常にアクティビティの現在のインスタンスを指すようになりました。
- 問題 64389280: GrantPermissionRule が WRITE_EXTERNAL_STORAGE を提供しない
- 問題 37065965: 向きの変更後に ActivityTestRule がアクティビティをリークする
- 問題 75254050: ActivityTestRule が、構成の変更中にアクティビティ インスタンスを更新しない
- 問題 64464625: Activity のメソッド 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
フラグを渡します。なお、clear コマンドのコンテキストは、テスト対象のアプリのコンテキストです。 - 修正 - 空のテスト(ターゲット内に @Test がない)を実行すると、テスト結果が以前のモードとは異なる
- 問題 72758547: Test Orchestrator によって Jacoco カバレッジ データが不完全になり、最後のテスト実行データのみが含まれる
- 問題 67916042: Android Test Orchestrator: OutOfMemory が原因でプロセスがクラッシュすると実行が停止する
- 問題 77752735: TransactionTooLargeException でオーケストレータがクラッシュする
- 問題 77549481: Test Orchestrator は各テストの後に「pm clear」を実行する必要がある
Espresso 3.0.2-alpha1、Runner 1.0.2-alpha1、Rules 1.0.2-alpha1、AndroidTestOrchestrator 1.0.2-alpha1(2017 年 12 月 05 日)
Espresso
- 呼び出し可能なレスポンスが
Intents
に追加され、起動されたインテントをキャプチャした後、Instrumentation.ActivityResult
オブジェクトを返す前にテストを実行できるようになりました。
- 呼び出し可能なレスポンスが
Runner
テストの実行と JUnit 機能なしで
MonitoringInstrumentation
を必要とするユーザーのために、monitor maven アーティファクトcom.android.support.test:monitor:<version>
を分割しました。com.android.support.test:runner:<version>
を使用すると、Gradle は自動的にmonitor
モジュールをrunner
モジュールの依存関係として pull するため、すべてが期待どおりに機能します。フラグ
newRunListenerOrderMode
が追加されました。true
の場合、ユーザー定義のリスナーはデフォルトのリスナーよりも前に実行されます(この動作が最終的にデフォルトになると思われます)。問題 65828576:
@Ignore
アノテーション付きのクラスでテストを実行するとTestRequestBuilder
がクラッシュする(テストの実行または JUnit 機能なしの、スタンドアロン)
AndroidTestOrchestrator
- オーケストレーションされていない
AndroidJUnitRunner
と同じ方法で空のテストを処理するようになりました。 - オーケストレータが、
AndroidJUnitRunner
からの非常に大きな標準出力を処理できるようになりました。
- オーケストレーションされていない
Espresso 3.0.1、Runner 1.0.1、Rules 1.0.1、AndroidTestOrchestrator 1.0.1(2017 年 08 月 28 日)
Espresso
- ステップ デバッガが VM に接続されている場合に
onTimeout()
を抑制するIdlingPolicy
オプションを追加 - 問題 64024656、64247586、64525881: ユーザーが
-e
クラスランナー引数を指定して特定のクラスを読み込んでいる場合を除き、クラスの読み込みの失敗を報告しない - 問題 64877246: 欠落しているクラスをソース JAR ファイルに追加
- ステップ デバッガが VM に接続されている場合に
Runner
ShardingFilter
ロジックを簡素化- 問題 65025743:
@RequiresDevice
フィルタが FTL エミュレータをサポートするようになりました。
AndroidTestOrchestrator
- 失敗のレポートを複製しない。失敗した後にテストプロセスがクラッシュした場合、テストの失敗が 1 つだけレポートされるようになりました。
- オーケストレータの Javadoc を修正
- リモート プロセスがクラッシュした場合、テストが失敗したと表示されるようになりました。
- 無視されたテストケースを処理するようになりました。
- 以前の結果と一致するように、無視されたテストケースをフッターから除外するようになりました。
- ランタイム権限の問題を修正しました。テストレポートは、Android 7.0(API レベル 24)以降で SD カードに書き込まれるようになりました。
Espresso 3.0.0、Runner 1.0.0、Rules 1.0.0、AndroidTestOrchestrator 1.0.0(2017 年 07 月 25 日、お知らせ)
互換性を破る変更
- すべてのアーティファクト
- API レベル 15 未満のサポートの終了 - ただし、最小 SDK は引き続き API レベル 9 を参照し、ユーザーはアップグレードの時間を確保できます。
- Espresso
- サポートの終了した
android.support.test.espresso.contrib.CountingIdlingResource
クラスを削除し、android.support.test.espresso.idling.CountingIdlingResource
に移動しました。registerIdlingResources()
ではなくgetInstance().register()
を使用してください。
- Guava が別の「内部」名前空間に jarjar 化されました。Espresso 名前空間を通じて誤って Guava API を使用すると、破損が発生する可能性があります。
- シェード Guava(
.core.deps.guava.
)への参照を削除 - サポート ライブラリのバージョンを 25.4.0 以降にアップグレード
- シェード Guava(
- サポートの終了した
既知の問題
- AndroidTestOrchestrator
-e numShards
と-e shardIndex
のランナー引数は現在サポートされていません。- パラメータ化されたテストは現在サポートされていません。
新しい機能と特長
- Espresso
espresso-core
とespresso-web
(espresso-contrib
ではない)の API 26 で新しいマルチプロセス Espresso をサポート- 新しい軽量
IdlingRegistry
APIcom.android.support.test.espresso:espresso-idling-resource:3.0.0
の一部として公開- サポートが終了したメソッド:
Executors
との同期に役立つ新しい API- 新しい 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
オブジェクトの色に対してマッチングします。
- 新しいビュー アクション メソッド:
ListView
の子孫で機能するためのscrollTo()
ビュー アクションを強化repeatedlyUntil()
– ビューが目的のViewMatchers
に一致するまで、ビューに所定のViewAction
を実行します。
- 新しい Espresso メソッド:
pressBackUnconditionally()
–pressBack()
と同様。ただし Espresso で移動したときは例外をスローしません。noActivity()
–ViewAction
またはViewAssertion
を実行する前にアクティビティを待機する必要がなくなります。onIdle()
– アプリがアイドルになるまでメインスレッドをループします。onIdle(Callable<T>)
–onIdle()
と同じ。ただし、追加のCallable
をパラメータとして受け取り、アプリがアイドル状態になった後に実行します。
webScrollIntoView()
– 新しいespresso-web
atom。WebView
内をスクロールできます。
- Runner
-
InterceptingActivityFactory
とSingleActivityFactory
–startService()
やsendBroadcast()
などのメソッドをオーバーライドすることで、外部の世界から切り離してアクティビティをテストする機能を提供します。 -
AndroidJUnitRunner
で JUnitParams を使用するためのサポートを追加 -
コアテストランナー レベルで
@UiThreadTest
の処理を開始し、@UiThreadTestRule
を非推奨にします。これにより、@Before
と@After
のアノテーションが付いたメソッドで直接@UiThreadTest
アノテーションを使用できるようになります。 -
@SdkSupress
アノテーションがmaxSdkVersion
値をサポートするようになりました(問題 37067792) -
-e classLoader
- ランナー引数を使用してクラスローダーを渡す機能を提供します。 -
-e filter
- ランナー引数を使用して指定するカスタム JUnit フィルタのサポートを追加。 -
-e runnerBuilder
– デベロッパーは、特定のクラスに対して実行できるかどうか、および実行方法を決定できるRunnerBuilder
の独自の実装を提供できます。
-
- Rules
ProviderTestRule
-ContentProvider
オブジェクトをテストするための新しい APIgetActivityResult()
とActivityResultMatchers
–setResult()
を呼び出したアクティビティのアクティビティ結果を取得する新しい API
- AndroidTestOrchestrator
- Android Test Orchestrator は、正確さと分離に重点を置き、テストを収集して実行する新しい方法を提供します。オーケストレータは独立したインストルメンテーション プロセスであり、テストごとに 1 つのインストルメンテーション ランナー プロセスを生成し、結果を収集します。
- アプリがクラッシュするとランナーのインストルメンテーションが停止しますが、オーケストレータは停止しないため、テストスイートを続行できます。
- オーケストレータ APK のインストールが必要 -
'com.android.support.test:orchestrator:1.0.0'
- バージョン 1.0 にあるのはコマンドライン インターフェースのみです。Android Studio、Firebase Test Lab との統合が計画されています。
- Android Test Orchestrator は、正確さと分離に重点を置き、テストを収集して実行する新しい方法を提供します。オーケストレータは独立したインストルメンテーション プロセスであり、テストごとに 1 つのインストルメンテーション ランナー プロセスを生成し、結果を収集します。
バグの修正
- Espresso
- ルートビューの同期を改善して不安定性を大幅に低減
IdlingResourceRegistry
の破損を修正IdlingResource
オブジェクトとの同期を向上- 問題 37132680: Espresso が、次のアクションを実行する前にダイアログの作成完了を待たない
- 問題 37103280: Espresso では ProGuard のユーザーのルールを公開する必要があるため、ユーザーはルールを追加する必要がない
- 問題 37094726: Espresso Intents に不要なアプリケーション ラベルが含まれる
- 問題 37093953: Espresso: null / 空のエラーテキストに対し利用可能なチェックがない
- 問題 37071776:
espresso-core
で Guava の.pom
ファイルが埋め込まれる - 問題 37062612:
release()
の NPE - 問題 37063389: Guava と
espresso-web
をandroidTest
依存関係にするとコンパイルしない - 問題 37070533: Android デザイン サポート ライブラリに
NavigationView
のサポートを追加
- Runner
-
@Test(timeout = 123)
と組み合わせて@UiThreadTest
を使用する機能を修正しました。 -e notClass
ランナー引数を修正- JUnit3 と JUnit4 のテストスイート、
Parameterized
とEnclosed
のランナーをサポートするように-e log
を修正 - 問題 37663530: 各テストメソッドの前後にすべてのアクティビティが終了するのを待機する
- 問題 37132680: Espresso が、次のアクションを実行する前にダイアログの作成が完了するのを待たない
-
問題 37123213: x86_64 ABI で
@RequiresDevice
が無視される -
問題 37101485:
AndroidJUnitRunner
のマニフェスト提供の引数の一部(テストサイズ、アノテーション、デバッグなど)が無視される - 問題 37082857: Espresso の準並列テスト実行が静的オブジェクトで失敗する
-
問題 37063396:
ProviderTestCase2
でコンテキストが初期化されない(NullPointerException
が発生する)
-
- Rules
- 通常と遅延の
ActivityTestRule
初期化の全体で動作を統一するようにActivityTestRule
を修正 - 問題 37079943: 再バインディングを許可するように
ServiceTestRule
を修正 - 問題 37109342:
getActivityResult()
とActivityResultMatchers
を追加
- 通常と遅延の
- UiAutomator
UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
でsetUiAutomationFlags()
を使用 – これにより、他のユーザー補助サービスの実行中にUiAutomator
を使用できるようになります。- 問題 37082813: API レベルが 19 以下の場合、空の
EditText
オブジェクトのsetText()
がNullPointerException
をスローする
その他の重要な変更
- バイナリが Google Maven を介して公開されるようになりました。
- JAR ファイル
espresso-core
とespresso-web
のサイズを縮小 – 埋め込まれた依存関係に ProGuard が適用されるようになりました。 - すべての
.aar
ファイルに ProGuard ルールが含まれるようになりました。 - リリースされたアーティファクトに
proguard_library.cfg
ファイルを追加 Tapper
インターフェースに新しいバージョンのsendTap()
を実装
外部寄与
- Espresso
- Runner
- Rules
Espresso 2.2.2、Runner/Rules 0.5(2016 年 02 月 22 日、サイレント リリース)
新機能
- espresso
- 問題 194253: Android サポート デザイン ライブラリに NavigationView のサポートを追加
- 有効なアニメーションと遷移のチェックを追加
- 新しい
ViewMatcher
API:withResourceName()
バグの修正
- espresso
- 問題 195331: espresso-core で guava の pom ファイルが埋め込まれる
- アイドリング リソースのカウントを espresso-contrib から移動
- rules
- 問題 187249:
Intents.release()
の NPE
- 問題 187249:
- runner
- 問題 196066:
AndroidJUnitRunner
の-e log true
引数が実際のテストをバイパスしない - ランナーの
onCreate()
でデバッガを待機 - サポートされているすべてのテスト アノテーションをプラットフォームから ATSL に移動
- JSBridge がないことに関するスタック トレースダンプを削除
AndroidAnnotatedBuilder
を解決
- 問題 196066:
その他の重要な変更
ActivityTestRule
、UiThreadTestRule
、IntentsTestRule
、ServiceTestRule
がベータ版から移行- 統一コード フォーマット用のコードスタイル設定ファイルを追加
Espresso 2.2.1、Runner/Rules 0.4(2015 年 09 月 15 日)
新機能
- rules
ActivityTestRule
と完全互換の新しいIntentsTestRule
コンストラクタを追加
- runner
- API レベル 15 以下の特別なケースの multidex インストールを追加
- クラスとパッケージに除外フィルタを追加:
- 特定のクラスのテストを除くすべてのテストを実行:
adb shell am instrument -w -e notClass com.android.foo.FooTest
- 1 つを除くすべてのテストを実行:
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()
により、ソフト キーボードが完全に不要になりました。- API レベル 21 以上での Espresso の
Espresso.pressBack()
メソッドとの同期の問題を修正 - API レベル 23 でのキーボード終了アニメーションの同期を修正
- rules
- API レベル 23 での
ServiceTestRule
を修正しました。startService()
は常に明示的なIntent
で呼び出す必要があります。
- API レベル 23 での
- runner
- 無効な 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 を使用するために移行
- hamcrest v1.3 を使用するために移行
- espresso-contrib 2.2
- ユーザー補助のチェック
DrawerActions
の重みのサポート
- rules 0.3
DisableOnAndroidDebug
ルール
- runner 0.3
- JUnit v4.10 から JUnit v4.12 へのアップグレード
- Hamcrest v1.3 を使用するために移行
バグの修正
DrawerActions
がParentListener
をリークする問題を修正- 仮定の失敗は、テストの失敗ではなくテストの無視として扱われるようになりました。
ExecutorService
を介したMonitoringInstrumentation
によるアクティビティ インスタンスのリークを修正- 孤立したアクティビティが停止段階でスタックする問題を修正
- スクロール イベントが生成されなかった場合に true を返すように
Until.scrollFinished()
を更新。UiObject2#setText()
で発生する可能性のある NPE を防止します。
Espresso 2.1、Test Runner/Rules 0.2 と UIAutomator 2.1.0(2015 年 04 月 21 日)
互換性を破る変更
- テストランナー アーティファクトが 2 つに分割され、名前が
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
の拡張、初期化、機能 UI テストでの Espresso-Intents のリリース
- espresso-core
ViewActions
: アクションを実行する前にグローバル アサーションを実行する機能が追加されました。これは、Espresso 上に構築された他のフレームワークで、既存の Espresso テストスイートが実行されている間にビュー階層の状態を検証するために役立ちます。ViewMatchers.withContentDescription()
resId
のオーバーロード
- rules
ActivityTestRule
: このルールは、単一アクティビティの機能テストを提供します。UiThreadRule
アノテーションとUiThreadTest
アノテーション: このルールにより、アプリのメインスレッド(または UI スレッド)でUiThreadTest
アノテーション付きのテストメソッドを実行できるようになります。ServiceTestRule
: このルールは、サービスの機能テストを提供します。
- runner
ApplicationLifecycleCallback
: アプリのライフサイクル イベントをモニターするためのコールバック- ランナー引数はすべて、
<meta-data>
タグを使用して Android マニフェスト ファイルでも指定できるようになりました。
- UIAutomator
UiDevice.dumpWindowHierarchy()
が、File
またはOutputStream
を受け入れられるようになりました。
バグの修正
- espresso
- 列が見つからなかった場合にカーソル マッチャーが
false
を返すようになったため、Hamcrest が次のカーソルに進むことができるようになりました。 PreferenceMatchers
withTitle
でのNullPointerException
は発生しなくなりました。- アイドリング リソースの登録を解除しても、Espresso がアイドリング リソースをビジー状態と認識しなくなりました。
- Espresso Contrib で使用するサポート アノテーション バージョンをアップデートしました。
- 列が見つからなかった場合にカーソル マッチャーが
- runner
AndroidJUnit4
が、仮定に失敗したテストをスキップするようになりました。
- UIAutomator
- ウォッチャーを実行して
StaleObjectException
を防止
- ウォッチャーを実行して
その他の重要な変更
- ラテン文字以外の文字列で typeText できない場合の、より適切なエラー メッセージを追加
UIAutomator 2.0 (2015-03-12)
UI Automator が Android Instrumentation をベースにするようになりました。./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 依存関係の再パッケージ化をサポートし、DEX 競合(開発の苦労の主な原因)を回避するために、オプション(guava 依存関係)が公開 API から削除されました。影響を受けるメソッドは次のとおりです。
ViewAssertion.check()
HumanReadables.getViewHierarchyErrorMessage()
新機能
- アクション
ViewActions
replaceText()
openLink()
- 上下にスワイプ
- espresso-contrib
RecyclerViewActions
:RecyclerViews
とのインタラクションを処理PickerActions
:Date
およびTime
選択ツールとのインタラクションを処理
- マッチャー
RootMatchers
isPlatformPopup()
ViewMatchers
isJavascriptEnabled()
withSpinnerText()
withHint()
isSelected()
hasLinks()
LayoutMatchers
: 国際化対応関連のレイアウト テスト用のマッチャーCursorMatchers
:Cursor
オブジェクト用のマッチャーのコレクション
- アサーション
PositionAssertions
(isLeftOf()
とisAbove()
を含む): 画面上の要素の相対位置を確認するためのViewAssertions
のコレクションLayoutAssertions
: 国際化対応関連のレイアウト テスト用のアサーション
- テストアプリ: 多数の新しいサンプル アクティビティ / テスト
- その他
Espresso.unregisterIdlingResources()
とEspresso.getIdlingResources()
:IdlingResources
を使用するための柔軟性をさらに提供ViewInteraction.withFailureHandler()
:onView()
からの障害ハンドラをオーバーライドできるCursorAdapters
に支えられるAdapterViews
のonData()
サポート
バグの修正
ViewMatchers.isDisplayed()
は画面全体を占めるビューと一致しますが、表示されるのは 90% 以上です。DrawerActions.openDrawer()
にスワイプ アクションの呼び出しを行っても、IdlingResourceTimeoutException
が発生しなくなりました。
その他の重要な変更
- Maven を使用したビルドから Gradle に切り替え
- DEX 競合を避けるために Espresso の依存関係(Guava、Dagger、Hamcrest)を移動
- アイドリング リソースの登録するときと登録を解除するときに、成功または失敗を返すように変更
- Lollipop のサポート: バージョン関連の変更を考慮して、
message.recycle()
をインターフェースの後ろに配置 - ターゲット SDK レベルを 21 に切り替え – 主にテストアプリに影響します。
バージョン 1.1(リリース日: 2014 年 01 月 08 日)
Espresso
- 新しい
swipeLeft
とswipeRight
ViewActions
- マルチウィンドウのサポート: Espresso がオペレーションを実行するターゲット ウィンドウの選択を可能にする高度な機能
TypeTextAction
の改善: 事前にフォーカスされたビューにテキストを入力できるようになり、テキストを簡単に追加できるようになりました。- 多数のバグの修正
Espresso Contrib ライブラリ
- この新しいライブラリには Espresso を補完する機能が含まれていますが、コアライブラリの一部ではありません。
DrawerLayout
でのオペレーション用の新しいDrawerActions
: Android サポート ライブラリに依存しているため、Espresso のコアライブラリの外に置いています。
サンプルテスト
- これらのテストは、テストアプリと同じパッケージになるように再配置されました。
- Maven POM が修正されて、
mvn install
が機能するように重複する guava 依存関係が削除されました。