我在测试和androidTest源目录方面遇到了多维风格的问题。
考虑到以下几种风格:
flavorDimensions "taste", "serving"
productFlavors {
chocolate {
flavorDimension "taste"
}
strawberry {
flavorDimension "taste"
}
kiwi {
flavorDimension "taste"
}
sample {
flavorDimension "serving"
}
whole {
flavorDimension "serving"
}
}
"非测试"没有问题。在Android Studio中识别的源目录(任何风味组合):
src / sample,src / whole,src / chocolate,src / strawberry,src / kiwi, src / chocolateSample,src / chocolateWhole,src / strawberrySample,src / strawberryWhole,src / kiwiSample,src / kiwiWhole
我的问题是" test"源目录。
仅识别单维风格: src / testSample,src / testWhole,src / testChocolate,src / testStrawberry,src / testKiwi 。
多维度风格不是: src / testChocolateSample,src / testChocolateWhole,src / testStrawberrySample,src / testStrawberryWhole,src / testKiwiSample,src / testKiwiWhole
" androidTest"也是如此。等效的源目录。
我的印象是app.iml没有正确生成。虽然我知道我们不应该这样做,但如果我要手动添加缺少的条目,则可以正确识别文件夹。
为什么这应该与非测试源目录一起使用但是在测试源目录中失败?这是gradle插件的已知问题还是限制?
我尝试过对此进行研究,但只发现与测试源文件夹的单一风味维度或非测试源文件夹的多维风格相关的主题。关于测试源文件夹的多维风格没有任何内容。
答案 0 :(得分:3)
您应该可以通过修改Android应用build.gradle
文件来解决此问题。例如,要将testChocolateSample
添加到单元测试,将testChocolate
添加到android集成测试:
android {
[...]
sourceSets {
main.java.srcDirs += 'src/main/java'
testChocolateSample.java.srcDirs += 'src/testChocolateSample/java'
androidTestChocolate.java.srcDirs += 'src/androidTestChocolate/java'
}
}
这也适用于Kotlin。只需使用java
切换kotlin
。