Java如何在JUnit4中按特定顺序运行测试方法?
我想执行@Test
以特定顺序注释的测试方法。
例如:
public class MyTest { @Test public void test1(){}
@Test public void test2(){}
}
我想确保每次运行test1()
前test2()
都运行MyTest
,但是找不到类似的注释@Test(order=xx)
。
我认为对于JUnit来说这是非常重要的功能,如果JUnit的作者不希望使用订单功能,为什么呢?
回答:
我认为这对于JUnit来说是非常重要的功能,如果JUnit的作者不希望使用订购功能,为什么呢?
我不确定用JUnit做到这一点的干净方法,据我所知JUnit假定所有测试都可以按任意顺序执行。从常见问题解答:
如何使用测试治具?
(…)测试方法调用的顺序不能保证,因此testOneItemCollection()
可能在testEmptyCollection()
之前执行。(...)
为什么会这样呢?好吧,我相信使测试顺序依存性是作者不希望提倡的做法。测试应该是独立的,他们不应该被耦合,并且违反本将让事情变得难以维持,将打破单独(明显),运行等测试的能力
话虽如此,如果你真的想朝这个方向发展,请考虑使用TestNG,因为它支持以本机任意顺序运行测试方法(以及指定方法取决于方法组的事情)。Cedric Beust解释了如何按照testng中的测试执行顺序执行此操作。
以上是 Java如何在JUnit4中按特定顺序运行测试方法? 的全部内容, 来源链接: utcz.com/qa/419717.html