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“测试”。而且,这种方式是安全的。这就是我的意思 假设:您有一组不同语言的项目: 如果我们试图在main
build.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