除非存在特定的系统变量,否则有没有办法设置Maven项目默认忽略一组测试?
例如,如果我运行以下内容:
mvn clean install
某些测试集合不会作为构建的一部分执行。如果我以这种方式执行构建:
mvn clean install -DrunAllTests
标准版本中默认忽略的测试也会执行。
我知道我可以使用TestNG来做到这一点,但我现在更愿意继续使用JUnit。我也尝试使用Junit Categories功能,但默认情况下无法让测试被忽略。
有什么想法或想法吗?
答案 0 :(得分:4)
要包含执行测试,您可以为maven-surefire-plugin添加以下配置:
<configuration>
<includes>
<include>**/SomeTests*.java</include>
</includes>
</configuration>
因此,您可以将其与Maven配置文件一起使用,并在空间配置文件中提取/启用其他测试。例如:
<profiles>
<profile>
<id>allTests</id>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/SomeOtherTests*.java</include>
</includes>
</configuration>
</plugins>
</profile>
</profiles>
然后maven命令看起来像这样:
mvn clean install -PallTests
如果您更喜欢使用属性,可以将激活部分添加到allTests配置文件并根据给定属性激活它。
答案 1 :(得分:2)
您可以将JUnit的Category功能与Maven的Surefire插件的excludeGroups一起使用。