我想按特定顺序执行由 @Test
注释的测试方法。
例如:
public class MyTest {
@Test public void test1(){}
@Test public void test2(){}
}
I want to ensure to run test1()
before test2()
each time I run MyTest
, but I couldn’t find annotation like @Test(order=xx)
.
我认为这对 JUnit 来说是非常重要的特性,如果 JUnit 的作者不想要 顺序特性,为什么?
原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不确定是否有一种干净的方法可以使用 JUnit 执行此操作,据我所知,JUnit 假定所有测试都可以按任意顺序执行。来自常见问题解答:
为什么会这样?好吧,我相信使测试 依赖于顺序 是作者不想提倡的一种做法。测试应该是独立的,它们不应该耦合,违反这一点 将使 事情更难维护,将破坏单独运行测试的能力(显然),等等。
话虽如此,如果您真的想朝这个方向前进,请考虑使用 TestNG,因为它本身支持以任意顺序运行测试方法(以及指定方法取决于方法组之类的事情)。 Cedric Beust 解释了如何 按照 testng 中测试的执行顺序执行 此操作。