我想在不执行单元测试的情况下执行grade构建。我尝试了:
$ gradle -Dskip.tests build
这似乎没什么用。还有其他命令可以使用吗?
我想在不执行单元测试的情况下执行grade构建。我尝试了:
$ gradle -Dskip.tests build
这似乎没什么用。还有其他命令可以使用吗?
当前回答
您可以排除任务
gradle build --exclude-task test
https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_executing_tasks
其他回答
使用-xtest跳过测试执行,但这也排除了测试代码编译。
gradle build -x test
在我们的案例中,我们有一个CI/CD过程,其中一个目标是编译,下一个目标就是测试(构建->测试)。
因此,对于我们的第一个构建目标,我们希望确保整个项目编译良好。为此,我们使用了:
./gradlew build testClasses -x test
在下一个目标中,我们只需执行测试:
./gradlew test
在项目中禁用测试任务的不同方法是:
tasks.withType(Test) {enabled = false}
如果您想在一个项目(或一组项目)中禁用测试,有时需要这种行为。
这种方式适用于所有类型的测试任务,而不仅仅是java“测试”。而且,这种方式是安全的。这就是我的意思假设:您有一组不同语言的项目:如果我们尝试在main build.gradle中添加这种记录:
subprojects{
.......
tests.enabled=false
.......
}
如果我们没有名为测试的任务,我们将在项目中失败
您应该使用-x命令行参数来排除任何任务。
尝试:
gradle build -x test
更新:
彼得评论中的链接发生了变化。这是Gradle用户指南中的图表
您可以在build.gradle中添加以下行,**/*排除所有测试。
test {
exclude '**/*'
}
参考
要从gradle中排除任何任务,请使用-x命令行选项。参见以下示例
task compile << {
println 'task compile'
}
task compileTest(dependsOn: compile) << {
println 'compile test'
}
task runningTest(dependsOn: compileTest) << {
println 'running test'
}
task dist(dependsOn:[runningTest, compileTest, compile]) << {
println 'running distribution job'
}
输出:gradle-q dist-x runningTest
task compile
compile test
running distribution job
希望这能给你基本的