AndroidX Test を使用するには、いくつかのテスト固有のライブラリを組み込む必要があります。このガイドでは、アプリのプロジェクト ファイルでそのようなライブラリを宣言する方法を説明し、AndroidX Test ライブラリがどのように構成されているかを示します。
AndroidX Test ライブラリを追加する
AndroidX Test を使用するには、以下のセクションで示すように、開発環境内でアプリ プロジェクトのクラスパスの依存関係とマニフェストを変更する必要があります。
Gradle の依存関係を追加する
アプリ プロジェクトのクラスパスの依存関係を変更するには、次の手順を実施します。
- アプリの
build.gradle
ファイルを開きます。 -
repositories
セクションに Google の Maven リポジトリが含まれていることを確認します。allprojects { repositories { jcenter() google() } }
-
使用する 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
など)を明示的に指定することをおすすめします。 -
Assert
やTestSuiteLoader
といった 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
パッケージに含まれています。
Assert
AssertionFailedError
ComparisonFailure
Protectable
Test
TestCase
TestFailure
TestListener
TestResult
TestSuite
このライブラリには、Android 9(API レベル 28)でサポートが終了した以下のクラスも含まれています。
android.test
パッケージ
AndroidTestCase
FlakyTest
InstrumentationTestCase
InstrumentationTestSuite
PerformanceTestCase
UiThreadTest
android.test.suitebuilder.annotation
パッケージ
com.android.internal.util
パッケージ
android.test.runner
このライブラリは、以下のクラスで構成されています。
android.test
パッケージ
junit.runner
パッケージ
このライブラリには、Android 9(API レベル 28)でサポートが終了した以下のクラスも含まれています。
android.test
パッケージ
ActivityInstrumentationTestCase
ActivityInstrumentationTestCase2
ActivityTestCase
ActivityUnitTestCase
AndroidTestRunner
ApplicationTestCase
AssertionFailedError
ComparisonFailure
InstrumentationTestRunner
IsolatedContext
MoreAsserts
ProviderTestCase
RenamingDelegatingContext
ServiceTestCase
SingleLaunchActivityTestCase
SyncBaseInstrumentation
TestSuiteProvider
TouchUtils
ViewAsserts
android.test.suitebuilder
パッケージ
android.test.mock
このライブラリは以下のクラスで構成され、各クラスは android.test.mock
パッケージに含まれています。
このライブラリには、Android 9(API レベル 28)でサポートが終了した以下のクラスも含まれています。各クラスは android.test.mock
パッケージに含まれています。