java – Maven:surefire插件在已配置时忽略-Dgroups
作者:互联网
我的项目有一些我很少想运行的JUnit测试.为此我将它们放在@Category中,然后我这样做了:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<!-- Run all but the inject tests -->
<configuration>
<groups>!be.test.InjectTests</groups>
</configuration>
</plugin>
我想在命令行中覆盖配置以运行Inject测试,如下所示:
mvn clean install -Dgroups=be.test.InjectTests
但这不起作用,-Dgroups被Maven忽略了.
如果我不把命令工作正常.
解决方法:
不幸的是,似乎如果在pom中设置了某些东西,它就不容易被覆盖(如果你明确地设置了skipTests,那么很难用属性覆盖)……但是! (这有点像黑客)您可以将属性的设置推迟到pom属性,然后在命令行上覆盖它.
<project>
...
<properties>
<groups>!Slow</groups>
<properties>
....
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.13</version>
<configuration>
<groups>${groups}</groups>
</configuration>
</plugin>
</plugins>
</build>
...
有了这个(以及一个快速构建的项目,在OSX上运行,Maven 3.0.4,Java 1.6.0_37):
$mvn clean test
...
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
...
$mvn clean test -Dgroups=Slow
...
Results :
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
标签:java,junit,maven,surefire 来源: https://codeday.me/bug/20190517/1123343.html