Android Studio で簡単な計測テストを実行しようとしましたが、成功しませんでした。Unit Testsのガイドに従ったところ、問題なく動作しました。さて、モック化が難しいコンポーネントをテストしたいと思います。インストルメント化されたテストのガイドに従うと、依存関係エラーが発生します。
私がしたこと:
Android Testing Support Library (Android Support Repository、rev 17) をインストールします。
src にディレクトリ androidTest を作成します。「test」で終わる Java フォルダー + パッケージを追加します。
- 簡単な Test クラスを追加する
@RunWith(AndroidJUnit4.class) public class ServerRequestInstrumentationTest { @Test public void test(){ LogC.d("Here we go testing !"); } }
- 簡単な TestSuit を追加します。
@RunWith(Suite.class) @Suite.SuiteClasses({ServerRequestInstrumentationTest.class}) public class TestSuit { public TestSuit(){} }
- gradle ファイルを変更して依存関係を追加します。
apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.mydomain.app" minSdkVersion 9 targetSdkVersion 22 versionCode 28 versionName "2.0.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' lintOptions { disable 'MissingTranslation' } } } sourceSets { main { java.srcDirs = ['src/main/java'] } } } dependencies { compile 'com.android.support:support-v4:22.2.0' compile 'com.android.support:appcompat-v7:22.2.0' wearApp project(':wear') compile project(':moreapps') compile project(':lib_repair') compile project(':bugreport') //testCompile 'junit:junit:4.12' testCompile 'org.mockito:mockito-core:1.10.19' androidTestCompile 'junit:junit:4.12' androidTestCompile 'org.hamcrest:hamcrest-library:1.1' androidTestCompile 'com.android.support.test:runner:0.3' androidTestCompile 'com.android.support.test:rules:0.3' }
行を追加しただけです。androidTestCompile 'junit:junit:4.12'
そうしないと、注釈@RunWith(AndroidJUnit4.class)
が認識されませんでした。テストを起動すると、Gradle ビルド エラーが 1 つ発生します。
エラー:タスク ':app:dexDebugAndroidTest' の実行に失敗しました。
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: プロセス 'command '/usr/lib/jvm/jdkoracle/bin/java'' がゼロ以外の終了値 2 で終了しました
なにか提案を ?テストライブラリについて何か見逃しましたか?
ありがとうございました