Gradle测试单元测试 - 运行除一个或几个以外的所有 - 命令行

时间:2014-11-07 20:22:51

标签: unit-testing command-line gradle

我的项目中有很多JUnit单元测试。构建系统是Gradle。操作系统:Windows / Linux。

测试(单元测试)在Gradle中免费,即如果你运行“ gradle clean build ”,Gradle也会运行“测试”任务(运行你的单元测试)。我知道如何在命令行的特定测试的测试文件夹中运行所有测试。例如:请参阅Gradle用户指南中的23.13.3和23.13.4部分:http://www.gradle.org/docs/current/userguide/java_plugin.html#sec:java_test

我的问题:

我想运行除一个或一些以外的所有测试。如何在Gradle命令行中执行此操作(而不是在build.gradle或更高级别.gradle文件中的test {...}部分中使用exclude)。

2 个答案:

答案 0 :(得分:9)

您可以根据属性值有条件地添加排除。

test {
    if (project.hasProperty('excludeTests')) {
        exclude project.property('excludeTests')
    }
}

然后,您可以从命令行执行此类操作。

$ gradle -PexcludeTests=org.foo.MyTest build

答案 1 :(得分:0)

如果您想在每个命令行中排除多个测试,这里是 Mark 答案的增强版本(gradle 6.8.2 中的 testet):

    if (project.hasProperty('excludeTests')) {
        project.properties['excludeTests']?.replaceAll('\\s', '')?.split('[,;]').each {
           exclude "${it}"
        }
    }

在命令行上,您现在可以指定多个排除测试:

$ gradlew test -PexcludeTests="**/bar*, **/foo.SomeTest*"

分隔符可以是“;”或“,”,后面有或没有空格。