maven surefire插件-按顺序运行所有测试

时间:2018-12-25 09:24:35

标签: java maven unit-testing junit maven-surefire-plugin

由于某些原因,我无法使用maven surefire插件按顺序运行测试。

我在测试中使用redis模拟(https://github.com/kstyrc/embedded-redis),效果很好,但出现了

之类的错误
Cannot run program "/tmp/1494421531552-0/redis-server-2.8.19" (in directory "/tmp/1494421531552-0"): error=26, Text file busy

我抬起头来,发现它可能与并行运行的测试有关,并且与此模拟程序有关。

当前我的行家看起来像这样

           <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.1</version>
            <configuration>
                <trimStackTrace>false</trimStackTrace>
                <useFile>false</useFile>
                <reuseForks>false</reuseForks>
                <forkCount>1</forkCount>
            </configuration>

我想确保所有我的测试按顺序运行(一个接一个)-这意味着每个类的每个测试方法都单独运行。

我该如何实现?

1 个答案:

答案 0 :(得分:2)

据我所知,确保单元测试顺序的唯一方法是按字母顺序排列:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <runOrder>alphabetical</runOrder>
    </configuration>
</plugin>

这就是说,相反,我认为您需要在每个测试中定义一个@After方法来停止redis模拟(并实际上等待它停止),以便新测试可以在@中启动redis模拟。之前的方法没有冲突