没有测试的Gradle构建

时间:2011-01-04 20:01:23

标签: gradle

我想在不执行单元测试的情况下执行gradle build。我试过了:

$ gradle -Dskip.tests build

这似乎没有做任何事情。我还可以使用其他命令吗?

14 个答案:

答案 0 :(得分:1035)

您应该使用排除任何任务的-x命令行参数。

尝试:

gradle build -x test 

<强>更新

彼得评论中的链接发生了变化。以下是diagram

中的Gradle user's guide

答案 1 :(得分:83)

尝试:

gradle assemble

要列出项目的所有可用任务,请尝试:

gradle tasks

更新:

这可能看起来不是最正确的答案,但请仔细阅读gradle tasks输出或文档。

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.

答案 2 :(得分:32)

接受的答案是正确的答案。

OTOH,我以前解决这个问题的方法是将以下内容添加到所有项目中:

test.onlyIf { ! Boolean.getBoolean('skip.tests') }

使用-Dskip.tests=true运行构建,将跳过所有测试任务。

答案 3 :(得分:6)

您可以将以下行添加到build.gradle**/*排除所有测试。

test {
    exclude '**/*'
}

答案 4 :(得分:4)

Reference

从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

希望这会给你基本的

答案 5 :(得分:3)

使用-x test跳过测试执行,但这也排除了测试代码的编译。

gradle build -x test 

在我们的案例中,我们有一个CI / CD流程,其中一个目标是编译,下一个目标是测试(构建->测试)。

因此,对于我们的第一个Build目标,我们希望确保整个项目都能很好地编译。为此,我们使用了:

./gradlew build testClasses -x test

对于下一个目标,我们只需执行测试即可。

答案 6 :(得分:2)

gradle中的每个动作都是tasktest也是。要从gradle运行中排除task,可以使用选项--exclude-task或简写-x,后跟需要排除的任务名称。示例:

gradle build -x test

对于所有需要排除的任务,应重复使用-x选项。

如果build.gradle文件中针对不同类型的测试有不同的任务,则需要跳过所有执行测试的任务。假设您有一个执行单元测试的任务test和一个执行功能测试的任务testFunctional。在这种情况下,您可以排除以下所有测试:

gradle build -x test -x testFunctional

答案 7 :(得分:1)

在项目中禁用测试任务的不同方法是:

tasks.withType(Test) {enabled = false}

如果要在项目(或项目组)中禁用测试,有时需要此行为。

这种方式适用于所有类型的测试任务,而不仅仅是java&#39;测试&#39;。而且,这种方式是安全的。这就是我的意思   让我们说:你有一套不同语言的项目:   如果我们尝试在主build.gradle中添加此类记录:

 subprojects{
 .......
 tests.enabled=false
 .......
}
如果我们没有名为 tests

的任务,我们将在项目中失败

答案 8 :(得分:1)

您可以排除任务

$(document).off("dblclick", ".firstlevel, .secondlevel, .thirdlevel")

https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_executing_tasks

答案 9 :(得分:1)

你可以使用 gradle build -x test

它将排除测试。

答案 10 :(得分:0)

gradle build -x test --parallel

如果您的计算机有多个核心。但是,不建议使用并行清洁。

答案 11 :(得分:0)

请尝试以下操作:

gradlew -DskipTests=true build

答案 12 :(得分:0)

The Java Plugin中:

$ 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 build,您有两个选择:

$ gradle assemble
$ gradle build -x test

但是如果要进行编译测试:

$ gradle assemble testClasses
$ gradle testClasses

答案 13 :(得分:0)

您将必须添加-x test

例如./gradlew build -x test

gradle build -x test