我想在不执行单元测试的情况下执行gradle build。我尝试了:
gradle build
$ gradle -Dskip.tests build
这似乎什么也做不了。还有其他命令我可以使用吗?
尝试:
gradle assemble
要列出项目的所有可用任务,请尝试:
gradle tasks
更新:
起初这似乎不是最正确的答案,但请仔细阅读gradle tasks输出或文档。
Build tasks-----------assemble - Assembles the outputs of this project.build - Assembles and tests this project.
公认的答案是正确的。
OTOH,我之前解决这个问题的方法是将以下内容添加到所有项目中:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
使用-Dskip.tests=true运行构建,所有测试任务都将被跳过。
-Dskip.tests=true
您应该使用-x命令行参数,它排除了任何任务。
-x
gradle build -x test
更新时间:
彼得评论中的链接更改了。这是Gradle用户指南中的图
参考
要从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
gradle -q dist -x runningTest
task compilecompile testrunning distribution job
希望这能给你基本的
在项目中禁用测试任务的不同方法是:
tasks.withType(Test) {enabled = false}
如果您想禁用项目之一(或项目组)中的测试,有时需要此行为。
这种方式适用于所有类型的测试任务,而不仅仅是Java的“测试”。此外,这种方式是安全的。这就是我的意思假设:您有一组不同语言的项目:如果我们尝试在mainbuild.gradle中添加这种记录:
build.gradle
subprojects{.......tests.enabled=false.......}
如果我们没有名为测试的任务,我们将在项目中失败
您可以将以下行添加到build.gradle,**/*排除所有测试。
**/*
test {exclude '**/*'}
您可以排除任务
gradle build --exclude-task test
https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_executing_tasks
请尝试这个:
gradlew -DskipTests=true build
使用-x test跳过测试执行,但这也排除了测试代码编译。
-x test
在我们的例子中,我们有一个CI/CD过程,其中一个目标是编译,下一个目标是测试(Build->Test)。
因此,对于我们的第一个Build目标,我们希望确保整个项目编译良好。为此,我们使用了:
Build
./gradlew build testClasses -x test
在下一个目标上,我们简单地执行测试:
./gradlew test
在Java插件:
$ gradle tasks Build tasks-----------assemble - Assembles the outputs of this project.build - Assembles and tests this project.testClasses - Assembles test classes. Verification tasks------------------test - Runs the unit tests.
Gradle构建无需测试,您有两种选择:
$ gradle assemble$ gradle build -x test
但是如果你想要编译测试:
$ gradle assemble testClasses$ gradle testClasses
gradle中的每个操作都是task,test也是如此。要从gradle run中排除task,您可以使用选项--exclude-task或它的速记-x,然后是需要排除的任务名称。示例:
task
test
--exclude-task
对于所有需要排除的任务,应重复-x选项。
如果你的build.gradle文件中有针对不同类型测试的不同任务,那么你需要跳过所有执行测试的任务。假设你有一个执行单元测试的任务test和一个执行功能测试的任务testFunctional。在这种情况下,你可以像下面这样排除所有测试:
testFunctional
gradle build -x test -x testFunctional