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 をサポート
- 新しい軽量 IdlingRegistryAPI- com.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-webatom。- 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オブジェクトをテストするための新しい API
- getActivityResult()と- 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 のサポートを追加
- 有効なアニメーションと遷移のチェックを追加
- 新しい ViewMatcherAPI: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とswipeRightViewActions
- マルチウィンドウのサポート: Espresso がオペレーションを実行するターゲット ウィンドウの選択を可能にする高度な機能
- TypeTextActionの改善: 事前にフォーカスされたビューにテキストを入力できるようになり、テキストを簡単に追加できるようになりました。
- 多数のバグの修正
Espresso Contrib ライブラリ
- この新しいライブラリには Espresso を補完する機能が含まれていますが、コアライブラリの一部ではありません。
- DrawerLayoutでのオペレーション用の新しい- DrawerActions: Android サポート ライブラリに依存しているため、Espresso のコアライブラリの外に置いています。
サンプルテスト
- これらのテストは、テストアプリと同じパッケージになるように再配置されました。
- Maven POM が修正されて、mvn installが機能するように重複する guava 依存関係が削除されました。
