2015年10月更新
これは、Android Testing Support Libraryの一部である AndroidJUnitRunner を介して可能になりました。つまり、Gradle ベースのプロジェクトで次のことを行う必要があります。
依存関係を追加します。
dependencies {
compile 'com.android.support:support-annotations:22.2.0'
androidTestCompile 'com.android.support.test:runner:0.4.1'
}
testInstrumentationRunner を指定します。
android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
テスト クラスに で注釈を付けます@RunWith(AndroidJUnit4.class)
。
- 通常の JUnit4 スタイルでテストを記述します。
Espresso のセットアップ手順も参照してください。プレーンな JUnit4 テストには Espresso 自体は必要ないことに注意してください。
必要な理由
このトピックに関してインターネット上で見つけることができる情報はほとんどありません。私が見つけた最高のものは、InstrumentationTestRunnerに関する情報でした。
他の Java コードと同様に、Android デバイスでの JUnit4 テストの実行を妨げるものは何もありません。ただし、Android テスト フレームワークはいくつかの追加作業を行います。
- ADB 経由でテスト結果を開発マシンに送り返します。
- インストルメンテーションを行います(これが正確に何を意味するのかはわかりません)。
上記は、JUnit3 専用のいくつかの拡張機能によって実行されます。
この JUnit3 固有のコードは、コア Android システムの一部を形成する InstrumentationTestRunner の一部のようです。ただし、AndroidJUnitRunner で明らかなように、JUnit4 またはその他のフレームワークをサポートするカスタム テスト ランナーを使用することができます。