如何在JUnit5中更改测试执行顺序?

Rad*_*icz 19 junit5

JUnit4具有@FixMethodOrder允许使用测试方法执行的字母顺序的注释.是否有类似的JUnit5机制?

Ale*_*mov 21

现在可以使用JUnit 5的快照版本.

https://junit.org/junit5/docs/snapshot/user-guide/#writing-tests-test-execution-order

要控制执行测试方法的顺序,请使用@TestMethodOrder注释测试类或测试接口,并指定所需的MethodOrderer实现.您可以实现自己的自定义MethodOrderer或使用以下内置MethodOrderer实现之一.

字母数字:根据字母名称和形式参数列表以字母数字的形式对测试方法进行排序.

OrderAnnotation:根据通过@Order注释指定的值以数字方式对测试方法进行排序.

使用快照版本(Gradle):

__PRE__

当然,快照不如发布版本稳定,因此要么自担风险,要么下载并引用特定的快照版本,要么等待5.4.0.


Nic*_*lai 13

还没有.对于单元测试,执行顺序应该是无关紧要的.对于更复杂的测试,JUnit旨在提供明确的支持 - 测试排序将是其中的一部分.

  • 从UI的角度来看,不同意.人脑.例如,我正在运行一个十级测试,2次失败,所以我的即时训练告诉我要查看两个失败的测试,从顶部开始,如第二个下降,第四个下来,当我再次运行它.但是当他们没有以相同的顺序返回时,我必须(a)意识到没有一些奇怪的非确定性错误导致随机测试失败,他们只是不在同一个顺序而且(b)记住通常愚蠢的测试名称失败并再次运行它以确保它们实际上一直失败. (4认同)
  • 从技术角度来看,执行顺序应该是无关紧要的,但从人的角度来看,随机顺序绊倒我的次数太多了.我希望它们以从测试运行到测试运行的相同顺序执行. (2认同)
  • 我认为,如果非确定性顺序让你失望,那么你正在测试的代码具有隐含的时间依赖性,这使得它很难使用.我会确定一个高优先级,这有助于稳定测试套件. (2认同)