我有这样的界面:
public interface IntegrationTest {
}
我像这样配置故障安全插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.14</version>
<configuration>
<groups>acme.test.IntegrationTest</groups>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
如果我然后创建像这样的集成测试
@Category(IntegrationTest.class)
public class ExampleClassIntegrationTest {
@Test
public void slow_and_painful_test() {
此测试不会运行。
但是,如果我根据Inclusions and Exclusions of Tests
命名该课程**/IT*.java
**/*IT.java
**/*ITCase.java
像这样:
@Category(IntegrationTest.class)
public class ExampleClassIT {
@Test
public void slow_and_painful_test() {
测试运行正常。为什么我必须命名测试并在使用groups-tag时有注释?我错过了什么吗?使用JUnit的documentation表示您可以在类级别使用Category注释。
答案 0 :(得分:8)
多数民众赞成因为这些是默认安全插件包含在执行时包含的java类。 但是,您可以在带有标签的pom中骑过这个: E.g
<includes>
<include>**/*.java</include>
</includes>
包含所有java文件。
答案 1 :(得分:0)
您应该将JUnit添加为已经完成的依赖项(> 4.8),或者特别将以下内容添加到您的failsafe-plugin配置中:
<plugins>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.14.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies>
</plugin>
[...]
</plugins>
但我认为它不会改变这种情况。