使用单个命令从多模块项目运行所有 UI/单元测试

Run all UI/Unit tests from a multi-module project using a single command

提问人:Bogdan Zurac 提问时间:2/12/2020 最后编辑:PhantômaxxBogdan Zurac 更新时间:6/28/2022 访问量:4132

问:

我们有一个多模块的 Android 项目,其中有些模块包含 UI 测试,有些模块包含单元测试。我们希望使用单个 Gradle 命令从所有模块运行所有 UI 测试,并对单元测试执行相同的操作。

我们发现这样做的唯一方法是在主模块中使用以下配置,该配置实现了所有其他子模块(基本上使模块了解项目中的所有其他模块和文件夹):appappandroidTesttest

app/build.gradle:

 sourceSets {
        androidTest.java.srcDirs += ["${project(':feature-login').projectDir}/src/androidTest/java"]
        test.java.srcDirs += ["${project(':feature-login').projectDir}/src/test/java"]
        test.java.srcDirs += ["${project(':core').projectDir}/src/test/java"]
    }

然后,我们运行以下 Gradle 命令:

./gradlew app:connectedDemoDebugAndroidTest
./gradlew app:testDemoDebugUnitTest

问题:有没有更好/更简单的方法来实现这一目标?或者有没有办法从上述解决方案中动态添加 and 文件夹(使用相对路径),而不必为每个模块编写行(我们有 40+ 个模块)?androidTesttestsrcDirs

android 单元测试 gradle android-gradle-plugin

评论


答:

-2赞 sanya5791 1/12/2022 #1

只需在终端中运行:

./gradlew 测试

请参阅文档以获取更多选项