AndroidX Test 用にプロジェクトをセットアップする

AndroidX Test を使用するには、いくつかのテスト固有のライブラリを組み込む必要があります。このガイドでは、アプリのプロジェクト ファイルでそのようなライブラリを宣言する方法を説明し、AndroidX Test ライブラリがどのように構成されているかを示します。

AndroidX Test ライブラリを追加する

AndroidX Test を使用するには、以下のセクションで示すように、開発環境内でアプリ プロジェクトのクラスパスの依存関係とマニフェストを変更する必要があります。

Gradle の依存関係を追加する

アプリ プロジェクトのクラスパスの依存関係を変更するには、次の手順を実施します。

  1. アプリの build.gradle ファイルを開きます。
  2. repositories セクションに Google の Maven リポジトリが含まれていることを確認します。

        allprojects {
            repositories {
                jcenter()
                google()
            }
        }
  3. 使用する AndroidX Test パッケージごとに、パッケージ名を dependencies セクションに追加します。たとえば、espresso-core パッケージを追加するには、以下の行を追加します。

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

    注意: 動的依存関係(espresso-core:3.1.0+ など)を使用すると、予期しないバージョン アップデートが生じたり、不具合によって互換性が失われたりする可能性があります。特定のバージョン番号(espresso-core:3.1.0 など)を明示的に指定することをおすすめします。

  4. AssertTestSuiteLoader といった JUnit ベースのクラスに依存するテストをアプリで作成する場合は、ファイルの android セクションに以下の行を追加します。
        android {
            ...
    
            // Gradle automatically adds 'android.test.runner' as a dependency.
            useLibrary 'android.test.runner'
    
            useLibrary 'android.test.base'
            useLibrary 'android.test.mock'
        }

    注: アプリで使用されるクラスを含むライブラリのみを組み込む必要があります。各ライブラリに含まれるクラスのリストについては、JUnit ベースのライブラリをご覧ください。

マニフェスト宣言を追加する

JUnit ベースのクラスに依存するテストを実行するには、必要な <uses-library> 要素をテストアプリのマニフェストに追加します。たとえば、android.test.runner ライブラリに依存するテストを追加する場合、アプリのマニフェストに次の要素を追加します。

<!-- You don't need to include android:required="false" if your app's
         minSdkVersion is 28 or higher. -->
    <uses-library android:name="android.test.runner"
                  android:required="false" />
    

特定の JUnit ベースのクラスを含むライブラリを特定するには、JUnit ベースのライブラリをご覧ください。

Android 9 以上をターゲットとする場合の考慮事項

このセクションのガイダンスは、Android 9(API レベル 28)以上をターゲットとし、かつ、アプリの最小 SDK バージョンが Android 9(API レベル 28)以上に設定されている場合にのみ適用されます。

android.test.runner ライブラリは、android.test.base ライブラリと android.test.mock ライブラリに暗黙的に依存します。アプリが android.test.base または android.test.mock のクラスのみを使用する場合は、それらのライブラリを個別に組み込むことができます。

<!-- For both of these declarations, you don't need to include
         android:required="false" if your app's minSdkVersion is 28
         or higher. -->
    <uses-library android:name="android.test.base"
                  android:required="false" />
    <uses-library android:name="android.test.mock"
                  android:required="false" />
    

AndroidX Test の依存関係のリスト

AndroidX Test には、以下のセクションに示すように、多くの依存関係が含まれています。

Gradle の依存関係

AndroidX Test で利用できる Gradle ベースの依存関係を以下に示します。

dependencies {
      // Core library
      androidTestImplementation 'androidx.test:core:1.0.0'

      // AndroidJUnitRunner and JUnit Rules
      androidTestImplementation 'androidx.test:runner:1.1.0'
      androidTestImplementation 'androidx.test:rules:1.1.0'

      // Assertions
      androidTestImplementation 'androidx.test.ext:junit:1.0.0'
      androidTestImplementation 'androidx.test.ext:truth:1.0.0'
      androidTestImplementation 'com.google.truth:truth:0.42'

      // Espresso dependencies
      androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-web:3.1.0'
      androidTestImplementation 'androidx.test.espresso.idling:idling-concurrent:3.1.0'

      // The following Espresso dependency can be either "implementation"
      // or "androidTestImplementation", depending on whether you want the
      // dependency to appear on your APK's compile classpath or the test APK
      // classpath.
      androidTestImplementation 'androidx.test.espresso:espresso-idling-resource:3.1.0'
    }
    

Maven リポジトリから Gradle の依存関係を追加するで説明しているように、Gradle の依存関係を開発環境に追加するには、モジュール レベルの build.gradle ファイル内に個々の依存関係を追加します。

JUnit ベースのライブラリ

このセクションのリストは、Android 9(API レベル 28)以上でプラットフォームが JUnit ベースのクラスをどのように編成しているかを示しています。

android.test.base

このライブラリは以下のクラスで構成され、各クラスは junit.framework パッケージに含まれています。

このライブラリには、Android 9(API レベル 28)でサポートが終了した以下のクラスも含まれています。

android.test パッケージ

android.test.suitebuilder.annotation パッケージ

com.android.internal.util パッケージ

android.test.runner

このライブラリは、以下のクラスで構成されています。

android.test パッケージ

junit.runner パッケージ

このライブラリには、Android 9(API レベル 28)でサポートが終了した以下のクラスも含まれています。

android.test パッケージ

android.test.suitebuilder パッケージ

android.test.mock

このライブラリは以下のクラスで構成され、各クラスは android.test.mock パッケージに含まれています。

このライブラリには、Android 9(API レベル 28)でサポートが終了した以下のクラスも含まれています。各クラスは android.test.mock パッケージに含まれています。