Firebase Test Lab は、Android アプリをテストするためのクラウドベースのインフラストラクチャです。Android Studio と完全に連携しており、インストルメンテーション テストの実行とテスト結果の確認を行えます。
このガイドでは、Test Lab と統合してテストを実行するために、Android Studio でインストルメンテーション テストを変更する方法について説明します。Android Studio の UI から Test Lab を使用して、テスト マトリックスの作成、インストルメンテーション テストの実行、テスト結果の確認を行う手順については、Firebase Test Lab でテストを実行するをご覧ください。
スクリーンショットをキャプチャする
Test Lab では、インストルメンテーション テストの実行時にスクリーンショットをキャプチャできます。スクリーンショットをキャプチャする方法については、プロジェクトにスクリーンショット ライブラリを追加するをご覧ください。
Espresso テスト レコーダーを使用してテストを作成する
Espresso テスト レコーダー ツールを使用すると、テストコードを記述しなくてもアプリの UI テストを作成できます。デバイスでの操作を記録し、アサーションを追加して、アプリの特定のスナップショットの UI 要素を検証できます。Espresso テスト レコーダーは、保存された記録を受け取り、対応する Espresso UI テストを自動的に生成します。生成されたテストは Test Lab でアプリをテストする際に使用できます。
詳しくは、Espresso テスト レコーダーで UI テストを作成するをご覧ください。
Test Lab のインストルメンテーション テストの動作を修正する
Test Lab では、インストルメンテーション テストに追加できるシステム変数が用意されています。この変数を使うことで、Test Lab でインストルメンテーション テストを実行する際に、自身のデバイスやエミュレータで実行する場合とは違う動作をさせることができます。
次のコード例では、システム プロパティ firebase.test.lab
を読み取り、テストが Test Lab で実行されている場合は文字列 testLabSetting
の値を true
に設定します。続いて、この文字列の値を使用して、追加のステートメントが実行されるかどうかを制御します。
Kotlin+KTX
val testLabSetting = Settings.System.getString(contentResolver, "firebase.test.lab") if ("true" == testLabSetting) { // Do something when running in Test Lab // ... }
Java
String testLabSetting = Settings.System.getString(getContentResolver(), "firebase.test.lab"); if ("true".equals(testLabSetting)) { // Do something when running in Test Lab // ... }