6 月 3 日の「#Android11: The Beta Launch Show」にぜひご参加ください。

Espresso のセットアップ手順

このガイドでは、SDK Manager を使用した Espresso のインストール方法と、Gradle を使用した Espresso のビルド方法について説明します。Android Studio の使用が推奨されます。

テスト環境のセットアップ

テストが不安定になるのを避けるため、使用する仮想デバイスまたは物理デバイスでシステム アニメーションをオフにすることを強くおすすめします。デバイスの [設定] > [開発者向けオプション] で、次の 3 つの設定を無効にします。

  • ウィンドウ アニメスケール
  • トランジション アニメスケール
  • Animator 再生時間スケール

Espresso の依存関係の追加

Espresso の依存関係をプロジェクトに追加するには、次の手順を行います。

  1. アプリの build.gradle ファイルを開きます。これは通常、最上位の build.gradle ファイルではなく、app/build.gradle です。
  2. 依存関係内に次の行を追加します。
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
    androidTestImplementation 'androidx.test:runner:1.1.0'
    androidTestImplementation 'androidx.test:rules:1.1.0'
    

Gradle のすべての依存関係についてはこちらをご覧ください。

インストゥルメンテーション ランナーの設定

上と同じ build.gradle ファイルの android.defaultConfig に、次の行を追加します。

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    

Gradle ビルドファイルの例

apply plugin: 'com.android.application'

    android {
        compileSdkVersion 28

        defaultConfig {
            applicationId "com.my.awesome.app"
            minSdkVersion 15
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"

            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
    }

    dependencies {
        androidTestImplementation 'androidx.test:runner:1.1.0'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
    }
    

分析

新しいリリースのたびに改善が行われるように、テストランナーによって分析情報が収集されます。具体的には、テストランナーが呼び出されるごとに、テスト対象アプリのパッケージ名のハッシュがアップロードされます。これにより Google は、Espresso を使用した一意のパッケージ数と使用量の両方を測定できます。

このデータをアップロードしたくない場合は、次のように instrument コマンドに disableAnalytics 引数を含めることでオプトアウトできます。

    adb shell am instrument -e disableAnalytics true
    

カスタム引数を渡す方法についてはこちらをご覧ください。

最初のテストの追加

Android Studio では、テストはデフォルトで src/androidTest/java/com.example.package/ に作成されます。

ルールを使用した JUnit4 テストの例を以下に示します。

Kotlin

    @RunWith(AndroidJUnit4::class)
    @LargeTest
    class HelloWorldEspressoTest {

        @get:Rule
        val activityRule = ActivityTestRule(MainActivity::class.java)

        @Test fun listGoesOverTheFold() {
            onView(withText("Hello world!")).check(matches(isDisplayed()))
        }
    }
    

Java

    @RunWith(AndroidJUnit4.class)
    @LargeTest
    public class HelloWorldEspressoTest {

        @Rule
        public ActivityTestRule<MainActivity> activityRule =
                new ActivityTestRule<>(MainActivity.class);

        @Test
        public void listGoesOverTheFold() {
            onView(withText("Hello world!")).check(matches(isDisplayed()));
        }
    }
    

テストの実行

テストの実行は、Android Studio またはコマンドラインで行えます。

Android Studio での実行

Android Studio でテスト構成を作成するには、次の手順を行います。

  1. [Run] > [Edit Configurations] を開きます。
  2. 新しい Android Tests 構成を追加します。
  3. モジュールを選択します。
  4. 次のように、特定のインストゥルメンテーション ランナーを追加します。androidx.test.runner.AndroidJUnitRunner
  5. 作成した構成を実行します。

コマンドラインでの実行

次の Gradle コマンドを実行します。

    ./gradlew connectedAndroidTest