我想为我的类定义单元测试,并遇到以下问题。如果我在androidTest文件夹中定义单元测试(使用instrumentation进行测试),那么测试会正常运行并且结果有效。但是,如果我在测试文件夹中定义测试(本地测试),则运行测试会生成一条消息"未找到类:" [classname]"空测试套件"。这不会那么糟糕,我只是从androidTest运行所有测试,除了我想使用代码覆盖,Android Studio不允许我从androidTest运行覆盖测试,但只能从测试。
为什么Android Studio能够在测试文件夹中定义单元测试时找到单元测试,但能否在androidTest文件夹中定义它们?
代码:
public class SomeTest{
private Context mInstrumentationCtx;
@Before
public void setup() {
mInstrumentationCtx = InstrumentationRegistry.getTargetContext();
// do some setup actions
}
@Test
public void testFirst() throws Exception {
Assert.assertEquals(true, true);
}
}
Gradle配置:
android {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
debug {
testCoverageEnabled = true
}
}
testCompile 'junit:junit:4.12'
testCompile ('com.android.support.test:runner:0.5', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.0'
答案 0 :(得分:1)
本身可能不是答案
您可以尝试更改
testCompile ('com.android.support.test:runner:0.5', {
exclude group: 'com.android.support', module: 'support-annotations'
})
到
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
在最近的gradle版本中似乎是默认的跑步者。
它适用于后者,但与前者失败
编辑:
经过一番努力后,看起来降级到版本2.2.3现在只是 解决方案,smth必须在2.3 beta中已经改变,作者已使用