如何在不运行所有测试的情况下运行单一风格的单元测试?

问题描述 投票:0回答:1

我正在为我的 Android 应用程序进行单元测试。我的应用程序有两种口味:“口味 1”和“口味 2”,在

build.gradle
中配置。两者共同的测试在
test
中,我还在
flavor1Test
flavor2Test
中进行特定风味的测试。

当我运行

./gradlew testFlavor1UnitTest
时,它会同时运行
test
flavor1Test
中的测试。风味 2 及其测试文件夹也是如此。但我计划将常见测试作为风味 1 运行,因此我不需要再次将它们作为风味 2 运行(如果可以的话那就太好了,但需要的时间太长了)。

如何仅运行

flavor2Test
文件夹中的测试?

android unit-testing android-testing android-unit-testing
1个回答
0
投票

要仅运行

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
}
© www.soinside.com 2019 - 2024. All rights reserved.