我对多维风格的测试和 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
我的问题是“测试”源目录。
只识别单一维度 flavor : 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 插件的限制?
我尝试对此进行研究,但只找到与测试源文件夹的单一风格维度或非测试源文件夹的多维度风格相关的主题。没有关于测试源文件夹的多维风格的内容。
最佳答案
您应该能够通过修改您的 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
。
关于android - 测试 Android Studio 无法识别的多维 flavor 的源目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31119583/