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



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

Test(单元测试)在Gradle中是免费的,即如果您运行"Gradle clean build",Gradle也将运行"Test"任务(运行单元测试)。我知道如何在测试文件夹中运行所有测试,在命令行中运行特定测试。例如:参见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)。

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

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

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

$ gradle -PexcludeTests=org.foo.MyTest build

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

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

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

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

分离器可以是"或"&";,带有或不带有跟随空格。

最新更新