使用maven-failsafe-plugin在Maven中运行JUnit4 Test Suite

Lou*_*ows 6 junit4 maven maven-failsafe-plugin

我有一个JUnit 4测试套件,包含了一些在他们需要的运行顺序测试类(我们的集成测试需要按照一定的顺序来运行).

如果我在没有任何配置的情况下使用maven-failsafe-plugin,它将运行测试但不按正确顺序运行.但是,如果我将插件设置为运行测试套件,则不会运行任何测试.

是否可以使用failsafe插件运行测试套件?如果是的话,我哪里出错!!

代码如下:

@RunWith(Suite.class)
@SuiteClasses({ 
    TestCase1.class,
    TestCase2.class, 
       ...
    TestCaseN.class,
})
public class IntegrationSuite {
    //Do Nothing.
}
Run Code Online (Sandbox Code Playgroud)

从pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.9</version>
    <configuration>
        <includes>
            <include>IntegrationSuite.java</include>
        </includes>
    </configuration>
    <executions>
        <execution>
            <id>integration-test</id>
            <goals>
                <goal>integration-test</goal>
            </goals>
    </execution>
    <execution>
        <id>verify</id>
        <goals>
            <goal>verify</goal>
        </goals>
    </execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

MaD*_*aDa 10

自2.7版本(最新版本runOrder)以来,Failsafe插件支持(单击)参数.选项不多,您无法明确指定顺序,但可以将其设置为"按字母顺序"并重命名测试类以反映运行顺序.

我也可以说,测试依赖于彼此的事实是(测试)代码气味 ; 它并不好,因为它是开发一套不可维护的测试并最终放弃它的一条短途径,当它的复杂性超越了人类的理解.此外,它可能无法暴露错误,因为它是一个选定的执行路径的结果.

顺便说一句,我更喜欢用这样的测试来包含双星号:

<includes>
     <include>**/IntegrationSuite.java</include>
</includes>
Run Code Online (Sandbox Code Playgroud)