当Test Artifact切换到Android Instrumentation Test时,androidTest出现在我的Android Studio上。但是,当测试工件切换回单元测试时。整个androidTest文件夹消失了。该项目是从Eclipse迁移的。我的项目有多种风味。
Gradle.build
sourceSets {
main {
// manifest, java, renderscript, aidl, assets, res detail etc etc
}
flavour1 {
// manifest, java, renderscript, aidl, assets, res detail etc etc
}
flavour2 {
// manifest, java, renderscript, aidl, assets, res detail etc etc
}
flavour3 {
// manifest, java, renderscript, aidl, assets, res detail etc etc
}
flavour4 {
// manifest, java, renderscript, aidl, assets, res detail etc etc
}
androidTest.setRoot('tdd/test')
androidTest {
java.srcDirs = ['tdd/test/java']
}
}
我不明白为什么它会因单元测试而消失,但会出现在Android Instrumentation Test中。
答案 0 :(得分:1)
我相信这就是答案。我甚至在Unit Test Artifact中设法创建了测试文件夹。当应用程序有多种变体时,Gradle不知道项目结构,导致它失去检测单元测试和仪器测试的能力。所以为了实现Unit Test,在build.gradle中的android方法中添加test方法;对于Android Instrumentation Test,在build.gradle中的android方法中添加androidTest方法;
示例:
的build.gradle
sourceSets {
test.setRoot('anydir') // for Unit Test
androidTest.setRoot('anydir') // for Android Instrumentation Test
}
只有当Android Studio无法识别您的测试文件夹时才需要上面的代码,因为您有多个变体并且您更改了Java代码的目录。