由于某些原因,我无法使用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>
我想确保所有我的测试按顺序运行(一个接一个)-这意味着每个类的每个测试方法都单独运行。
我该如何实现?
答案 0 :(得分:2)
据我所知,确保单元测试顺序的唯一方法是按字母顺序排列:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<runOrder>alphabetical</runOrder>
</configuration>
</plugin>
这就是说,相反,我认为您需要在每个测试中定义一个@After方法来停止redis模拟(并实际上等待它停止),以便新测试可以在@中启动redis模拟。之前的方法没有冲突