JUnit 5与Maven Surefire插件测试执行顺序的冲突及优先级疑问
JUnit 5 与 Maven Surefire 测试执行顺序冲突疑问
我清楚测试不应依赖执行顺序,但实际开发中还是遇到了问题:刚修复的一个Maven项目,测试在Jenkins上能通过,本地命令行执行却失败,现在查文档想理清原理。
JUnit 5 文档说明:
默认情况下,测试类和方法将采用一种确定性但刻意不明显的算法进行排序。
若要控制测试方法的执行顺序,需为测试类或接口添加@TestMethodOrder注解。
而 Maven Surefire 插件文档的描述则不同:
<runOrder>定义测试的执行顺序,支持值包括alphabetical、reversealphabetical、random、hourly(偶数小时按字母序,奇数小时按逆字母序)、failedfirst、balanced和filesystem,默认值为filesystem。
想请教:这两者的规则是如何共存的?我遇到的情况是执行顺序既非JUnit默认的确定性排序,也不符合文件系统顺序(已用ls -lU验证)。从Maven日志看,两台服务器的执行顺序恰好相反,且都和字母序、文件系统顺序不符。是否存在优先级更高的其他设置?
内容的提问来源于stack exchange,提问作者Pino
相关产品推荐
相关产品推荐

