如何在JUnit4中按特定顺序运行测试方法?

我想按特定顺序执行由@test注释的测试方法

例如:

公共类MyTest{
@测试公共void test1(){}
@测试公共void test2(){}
}

我想确保在每次运行MyTest之前运行test1(),但我找不到类似@Test(order=xx)的注释

我认为这是JUnit的一个非常重要的特性,如果JUnit的作者不想要顺序特性,为什么

我认为这是JUnit的一个非常重要的特性,如果JUnit的作者不想要order特性,为什么

我不确定JUnit是否有一个干净的方法来实现这一点,据我所知,JUnit假设所有测试都可以按任意顺序执行。从常见问题解答:

如何使用测试夹具

(…)不保证测试方法调用的顺序,因此testOneItemCollection()可能在testEmptyCollection()之前执行。(……)

为什么会这样?嗯,我认为让测试依赖于顺序是作者不想推广的做法。测试应该是独立的,它们不应该耦合,违反这个将使事情更难维护,将破坏单独运行测试的能力(显然),等等

,如果你真的想进入这个方向,考虑使用TestNG,因为它支持以任何任意顺序运行测试方法(以及指定方法取决于方法组的事情)。Cedric Beust在testng中测试的执行顺序

发表评论