仅包括用于故障安全(集成测试)的测试测试组,但将它们从surefire中排除

时间:2016-02-08 13:20:26

标签: maven testing spring-boot testng

以下配置不起作用。目标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 {
      /*...*/

    }
}

1 个答案:

答案 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>