Gradle 无需测试的渐变构建
我想在不执行单元测试的情况下执行Gradle 无需测试的渐变构建,gradle,Gradle,我想在不执行单元测试的情况下执行gradlebuild。我试过: $ gradle -Dskip.tests build 那似乎没什么用。还有其他命令可以使用吗?试试: gradle assemble 要列出项目的所有可用任务,请尝试: gradle tasks 更新: 起初,这似乎不是最正确的答案,但请仔细阅读gradletasksoutput或docs Build tasks ----------- assemble - Assembles the outputs of this pr
gradlebuild
。我试过:
$ gradle -Dskip.tests build
那似乎没什么用。还有其他命令可以使用吗?试试:
gradle assemble
要列出项目的所有可用任务,请尝试:
gradle tasks
更新:
起初,这似乎不是最正确的答案,但请仔细阅读gradletasks
output或docs
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运行生成,将跳过所有测试任务。您应该使用-x
命令行参数,该参数不包括任何任务
尝试:
更新:
彼得评论中的链接改变了。以下是来自
要从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 build -x test --parallel
如果您的机器有多个内核。但是,不建议使用并行清理。在项目中禁用测试任务的不同方法是:
tasks.withType(Test) {enabled = false}
如果要禁用某个项目(或项目组)中的测试,有时需要此行为
这种方法适用于所有类型的测试任务,而不仅仅是java“测试”。而且,这种方式是安全的。这就是我的意思
假设:您有一组不同语言的项目:
如果我们试图在mainbuild.gradle
中添加此类记录:
subprojects{
.......
tests.enabled=false
.......
}
如果没有名为测试的任务,您可以将以下行添加到build.gradle
,***
排除所有测试,则项目将失败
test {
exclude '**/*'
}
您可以排除任务
gradle build --exclude-task test
请尝试以下方法:
使用-x test
跳过测试执行,但这也排除了测试代码编译
gradle build -x test
在我们的例子中,我们有一个CI/CD过程,其中一个目标是编译,下一个目标是测试(Build->Test)
因此,对于我们的第一个Build
目标,我们希望确保整个项目编译良好。为此,我们使用了:
./gradlew build testClasses -x test
在下一个目标中,我们只需执行测试。在:
无需测试的渐变构建您有两个选项:
$ gradle assemble
$ gradle build -x test
但如果您想要编译测试:
$ gradle assemble testClasses
$ gradle testClasses
gradle中的每个动作都是一个任务
,测试
。要从gradle运行中排除任务
,您可以使用选项--exclude task
或其缩写-x
,后跟需要排除的任务名称。例如:
gradle build -x test
对于需要排除的所有任务,应重复使用-x
选项
如果在build.gradle
文件中有不同类型测试的不同任务,则需要跳过所有执行测试的任务。假设您有一个执行单元测试的任务test
,和一个执行功能测试的任务testFunctional
。在这种情况下,您可以排除所有测试,如下所示:
gradle build -x test -x testFunctional
您必须添加-x测试
task compile
compile test
running distribution job
e、 g./gradlew build-x测试
task compile
compile test
running distribution job
或
gradle build -x test
您可以使用gradlebuild-x测试
它将排除测试。这是正确答案。”“gradle Assembly”将省略许多其他任务。看看这个就知道了。对于典型的实际构建,“gradle Assembly”将省略更多任务。来自@PeterNiederwieser的链接不再有效。可能他指的是这个图:虽然您可能需要添加例如-x integratest
等等,但它仍然有效,因此不像Maven的毯子-DskipTests
@c_maker那样方便,如何从eclipse执行此操作?是否可以执行类文件?我的意思是,通过run
我可以看到Hello程序的效果。但我认为它正在重新汇编所有内容。我只想执行java程序。也许这有助于您使用java???-DskipTests
是为MavenI设计的。我知道它有时会有帮助,但Gradle很容易启用测试并发性。也许缩短1-2秒并不是最好的事情,因此确保我们花更少的时间运行它们可以让我们始终运行测试,而不必支付成本或支付很少的费用。对我来说,这仍然是唯一可行的选择,因为-x测试似乎只适用于启动项目,而不适用于多项目构建中的依赖项(在gradle 2.1上测试)。只有在。。。在根build.gradle中的configure(subprojects.findAll{javaProjects.contains(it.name)}{}块中,它将适用于所有项目。很好。maven用户很熟悉这种方法。在调试单元测试时,作为一个额外提示:gradleassemble
不会编译主文件。如果您正在修复单元测试,那么您需要gradle assemble testClasses
-我认为构建任务的命名非常混乱。请发送页面的屏幕截图。我不知道该把这行代码放在哪里……这段代码应该放在你的构建中。格雷德尔:)这是最好的答案!您的回答很有帮助。这很好,因为我可以在IntelliJ easy而不是命令行中执行此操作。@KirankumarDafda-否。您可以随时发布答案,即使现有答案已被接受。新的答案可能比公认的答案更好,或者以不同的方式解决,或者以其他方式帮助他人@WaiHaLee我无法编辑我的评论,但当我收到新用户的建议时,我想解释一下,尝试添加带有更多说明的答案,以便其他用户可以检查为什么这个答案或代码对他们有帮助。
gradle build -x test