我一直在尝试在 Android Studio 中运行简单的检测测试,但没有成功。我遵循了单元测试指南,它工作正常。现在,我想测试难以模拟的组件。当我按照有关仪器测试的指南进行操作时,我最终会遇到依赖错误。
我做了什么:
安装 Android 测试支持库(Android Support Repository,rev 17)。
在 src 中创建一个目录 androidTest。添加以“test”结尾的 Java 文件夹 + 包。
- 添加一个简单的测试类
@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' }
我只是添加了 line ,否则无法识别androidTestCompile 'junit:junit:4.12'
注释。@RunWith(AndroidJUnit4.class)
现在,当我启动测试时,我得到一个 Gradle 构建错误。
错误:任务':app:dexDebugAndroidTest'的执行失败。
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/jdkoracle/bin/java'' 以非零退出值 2 结束
有什么建议吗?我是否错过了有关测试库的某些内容?
谢谢