我想执行按@Test特定顺序注释的测试方法。
@Test
例如:
public class MyTest { @Test public void test1(){} @Test public void test2(){} }
我想确保在每次运行test1()之前运行,但我找不到像.test2()``MyTest``@Test(order=xx)
test1()
test2()``MyTest``@Test(order=xx)
我认为这对 JUnit 来说是非常重要的特性,如果 JUnit 的作者不想要 order 特性 ,为什么?
我认为这对 JUnit 来说是非常重要的功能,如果 JUnit 的作者不想要订单功能,为什么?
我不确定 JUnit 是否有一种干净的方法可以做到这一点,据我所知,JUnit 假设所有测试都可以按任意顺序执行。从常见问题解答:
如何使用测试夹具? (…)无法保证 测试方法调用的顺序,因此 testOneItemCollection() 可能在 testEmptyCollection() 之前执行。(…)
(…)无法保证 测试方法调用的顺序,因此 testOneItemCollection() 可能在 testEmptyCollection() 之前执行。(…)
为什么会这样?好吧,我相信让测试 顺序依赖 是作者不想推广的一种做法。测试应该是独立的,它们不应该耦合,违反这一点 会使 事情更难维护,会破坏单独运行测试的能力(显然)等等。
话虽这么说,如果您真的想朝这个方向发展,请考虑使用 TestNG,因为它支持以任意顺序运行测试方法(例如指定方法取决于方法组)