groovy 自定义Gradle任务以执行所有模块中的所有单元测试

9nvpjoqh  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(76)

我想为一个Android应用项目编写一个自定义任务,该项目包含多个Gradle模块,该模块执行以下模块中的单元测试,因此我可以通过一个Gradle任务调用运行所有模块:

  • Android应用程序模块,例如testOrangeDebugUnitTest
  • Android库模块,例如testDebug
  • Java/Kotlin库模块,例如test

需求

1.如果能够配置一种产品风味(例如“橙子”)进行测试(全部运行将花费太长时间),则会很方便。
1.此外,使用debug产品类型运行Android单元测试就足够了。
1.模块名称不应硬编码,以便项目可扩展,并自动拾取新模块中的测试。
Groovy构建脚本中声明和注册任务的现代方法是什么?类似于.

tasks.register("testAllModules") {
    group = "verification"
    description = "Runs all unit tests of all modules."
    // ...
}

字符串

相关

vhmi4jdf

vhmi4jdf1#

tasks.register("specialTest") {
}

gradle.projectsEvaluated {
    subprojects {
        var subTask = rootProject.findProject(":${it.name}").tasks.named("test")
        rootProject.tasks.specialTest.dependsOn subTask
    }
}

字符串
简单但有效。它创建您想要运行的任务,然后循环子模块(可以使用if语句进行过滤),并将子模块的任务应用于创建的任务。适用于Gradle 8.5

相关问题