我的项目中有很多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)。
答案 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*"
分隔符可以是“;”或“,”,后面有或没有空格。