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

maven surefire plugin - run all tests sequentially

出于某种原因,我无法让 Maven surefire 插件按顺序 运行 我的测试。

我在测试中使用了 redis mock (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

我查了一下,发现它可能与并行测试 运行ning 有关,并且它与这个模拟有问题。

目前我的 maven 看起来像这样

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

我想确保 所有 我的测试 运行 顺序(一个接一个)- 这意味着每个 class 运行一个人。

我怎样才能做到这一点?

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

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

话虽这么说,但我认为您需要在每个测试中定义一个停止 redis 模拟的 @After 方法(实际上等到它停止),以便新测试可以启动 redis 模拟@Before 方法没有冲突