我正在为我的 Android 应用程序进行单元测试。我的应用程序有两种口味:“口味 1”和“口味 2”,在
build.gradle
中配置。两者共同的测试在 test
中,我还在 flavor1Test
和 flavor2Test
中进行特定风味的测试。
当我运行
./gradlew testFlavor1UnitTest
时,它会同时运行 test
和 flavor1Test
中的测试。风味 2 及其测试文件夹也是如此。但我计划将常见测试作为风味 1 运行,因此我不需要再次将它们作为风味 2 运行(如果可以的话那就太好了,但需要的时间太长了)。
如何仅运行
flavor2Test
文件夹中的测试?
要仅运行
flavor2Test
文件夹中的测试而不执行 test 文件夹中的常见测试,可以使用以下命令:
./gradlew testFlavor2UnitTest --tests *flavor2Test.*
修改build.gradle文件以进行精确控制:如果您经常想跳过特定
flavors
的常见测试,可以添加自定义任务或配置现有testFlavor2UnitTest
任务以排除测试源集。
在你的 build.gradle 文件中:
tasks.named("testFlavor2UnitTest") {
doFirst {
testClassesDirs = files("build/classes/java/testFlavor2") // Adjust path as needed
classpath = files(classpath.filter { file ->
!file.absolutePath.contains("test")
})
}
}
这可确保在运行
flavor2Test
./gradlew
时仅执行 testFlavor2UnitTest
测试。
如果您的测试花费的时间太长,请考虑在您的
build.gradle
文件中启用并行执行:
test {
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) // Adjust as needed
}