Java Maven:surefire插件忽略-Dgroups when<;团体>;已配置
我的项目有一些我很少想运行的Java Maven:surefire插件忽略-Dgroups when<;团体>;已配置,java,maven,junit,surefire,Java,Maven,Junit,Surefire,我的项目有一些我很少想运行的JUnit测试。为此,我将它们放入@类别,然后我这样做: <plugin> <artifactId>maven-surefire-plugin</artifactId> <!-- Run all but the inject tests --> <configuration> <groups>!be.test.InjectTests</groups>
JUnit
测试。为此,我将它们放入@类别
,然后我这样做:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<!-- Run all but the inject tests -->
<configuration>
<groups>!be.test.InjectTests</groups>
</configuration>
</plugin>
但是这不起作用,-dGroup被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>
...
我刚试过这个,但它实际上不起作用:|不知道为什么。在debug中运行mvn时,我可以看到
组
被分配给我在命令行上传递的任何内容,但是相关的@Tag
测试仍然被忽略并且没有执行
<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>
...
$ 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