【问题标题】:Run all UI/Unit tests from a multi-module project using a single command使用单个命令从多模块项目运行所有 UI/单元测试
【发布时间】:2020-05-27 23:06:36
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android unit-testing testing gradle android-gradle-plugin


    【解决方案1】:

    只需在终端中运行:

    ./gradlew 测试

    see docs 了解更多选项

    【讨论】:

      【解决方案2】:

      我每天都这样做(我通常有一个用于单元测试的源集和一个用于较慢集成测试的源集:./gradlew check。它运行所有测试任务。

      来自gradle docs

      检查

      取决于:测试

      执行验证任务的聚合任务,例如运行测试。一些插件添加了自己的验证任务来检查。如果您希望它们执行完整构建,您还应该将任何自定义测试任务附加到此生命周期任务。此任务由 Base Plugin 添加。

      【讨论】:

        猜你喜欢
        • 2018-07-23
        • 2014-03-20
        • 2011-04-10
        • 1970-01-01
        • 2016-05-12
        • 2011-03-18
        • 2015-11-21
        • 2016-02-19
        • 2011-04-25
        相关资源
        最近更新 更多