繁体   English   中英

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

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

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

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

应用程序/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文件夹(使用相对路径),而不必为每个模块(我们有 40 多个模块)编写srcDirs行?

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

我们发现执行此操作的唯一方法是在实现所有其他子模块的主app模块中使用以下配置(基本上使app模块了解项目中的所有其他androidTesttest文件夹):

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文件夹,而不必为每个模块(我们有40多个模块)编写srcDirs行?

只需在终端中运行:

./gradlew 测试

参阅文档以获取更多选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM