我们正在使用 maven-surefire-plugin运行我们的 Java 测试。测试分为两类:
整个“快速”套件在几秒钟内运行,而慢速测试需要半小时。
在开发过程中,我只想运行快速测试。当我提交时,我也希望能够运行慢速测试,所以运行慢速测试应该是一个选项,而快速测试应该是默认值。
在 CI 服务器上,我想同时运行两者。
当慢速测试包括快速测试时,这是可以的(甚至是首选)。
对于这种情况,我应该如何设置 Maven、JUnit 和 Surefire?
最佳答案
您应该使用 junit 中的 Category:Junit category
第一个解决方案
配置 maven-surefire-plugin
版本至少为 2.11
<profile>
<id>normal</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>com.test.SlowTests</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
第二种解决方案
在配置部分,您可以添加带有文件的正则表达式以仅支持类(默认配置):
<configuration>
<includes>
<include>**/*Test*.java</include>
<include>**/*Test.java</include>
<include>**/*TestCase.java</include>
</includes>
</configuration>
关于unit-testing - 如何在 Maven 2 中的两个测试套件之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9533401/