testing - 自定义 Gradle 任务无需测试即可构建所有项目?

标签 testing gradle build.gradle gradlew

我知道我可以执行“gradle build -x test”,但是有没有办法创建自定义 Gradle 任务,比如 buildNoTests,它将构建我所有的项目,但会完全忽略测试(不要编译/运行它们)?

我读到“组装”任务是不够的,因为它可能会错过其他不是测试但包含在“构建”任务中的任务。

最佳答案

把它放在根 build.gradle

allprojects {
    afterEvaluate {
        def buildTask = tasks.findByPath('build')
        if (buildTask) {
           task buildNoTests {
               dependsOn buildTask
           }
           gradle.taskGraph.whenReady { TaskExecutionGraph graph ->
               if (graph.hasTask(buildNoTests)) {
                   def skipNames = ['test', 'compileTestJava', 'processTestResources', 'testClasses'] as Set
                   Collection<Task> testTasks = graph.allTasks.findAll { skipNames.contains(it.name) }
                   testTasks.each { it.enabled = false }
               }
           }
       }
    }
}

关于testing - 自定义 Gradle 任务无需测试即可构建所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40132616/

相关文章:

android - 无法解析 com.android.tools.build.gradle :3. 0.1

android - 使用 apache commons ftp 的 gradle 错误 "ZipException: duplicate entry: org/apache/ftpserver/ftplet/Authentication.class"

html - 机器人框架下载文件

python - 测试需要用户输入的 Python 函数()

php - 如何在 Slim 2 和 PHPUnit 中测试重定向?

gradle - 从 gradle 任务执行 git bash

android - Gradle 关于 "compile"的警告,即使没有找到

gradle - Gradle ziptree的中文文件名失败

gradle - Samza构建与gradle失败

unit-testing - chalice 2.4.4 : How do mock a transient service inside a domain?