以下配置不起作用。目标integration-test
的范围没有测试。
如果不清楚,应该发生的是我所做的mvn integration-test
故障安全插件应该运行我的测试。但是,surefire插件配置不包括测试。如果我取消注释surefire配置块,则在集成测试目标期间运行测试。
Maven config:
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<groups>spring-container-sanity</groups>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>spring-container-sanity</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
Java Test类
@SpringApplicationConfiguration(TestApplication.class)
@TestPropertySource("/test.properties")
public class SimpleTest extends AbstractTestNGSpringContextTests {
@Test(groups = "spring-container-sanity")
public void isHessianServiceExported() throws Exception {
/*...*/
}
}
答案 0 :(得分:2)
我不知道为什么在禁用surefire时运行测试。 Failsafe具有集成测试的文件命名约定,如果您要运行的测试不遵循此规则,则他们不会在范围内,group
规则将无法匹配。因此,在这种情况下,要获得故障保护来解决测试它应该正确运行,首先需要添加一个包含过滤器。这个构建块将起作用:
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<groups>spring-container-sanity</groups>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>spring-container-sanity</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>