当前位置: 首页 > 面试题库 >

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

锺离刚洁
2023-03-14
问题内容

我想执行@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中的测试执行顺序执行此操作。



 类似资料:
  • 如何按特定顺序运行quarkus测试?通常我们有@InSequence注释(来自arquillian IIRC),我们可以实现这一点。 但是我没有找到任何类似的Quarkus在"org.junit.jupiter.api"软件包提供Quarkus-朱尼5。 它将以一个替代的顺序运行,我试图使用org.junit.jupiter.api.顺序与@Testmetodorder(方法命令。nnotati

  • 问题内容: 我有一些测试UI的测试,也可以用来创建数据。 单独的一组测试依赖于此数据,这意味着这些测试必须仅在第一组运行之后才能运行。 我知道要运行一组或使用标签运行它们,但是如何按特定顺序运行它们呢? 问题答案: Nightwatch将按顺序运行特定文件中的每个测试,因此(一个简单的)解决方案是将每个测试按您希望它们运行的​​顺序放入同一文件中。 如果单个文件的测试太多,这将变得很麻烦。要解决此

  • 主要内容:1 概述,2 测试执行顺序,3 例子,4 结论1 概述 在本指南中,我们将学习如何按顺序执行测试。默认情况下,JUnit以任何顺序执行测试。 2 测试执行顺序 要更改测试执行顺序,只需使用@FixMethodOrder注释测试类并指定可用的MethodSorters之一: @FixMethodOrder(MethodSorters.JVM):按照JVM返回的顺序保留测试方法。此顺序可能因运行而异。 @FixMethodOrder(Method

  • 问题内容: 我正在使用带有eclipse的junit编写功能测试。 当运行单个测试时,它将按照我在类中设置它们的顺序运行。 例如。 但是,当我将此测试作为套件的一部分运行时(在包中),顺序是随机的。 例如,它将执行验证,然后删除用户,然后删除joinuserToRoom然后创建用户。 我在套件中的测试并不相互依赖。但是,测试中的每个单独测试都取决于它们以正确的顺序运行。 有什么办法可以实现? 谢谢

  • 我使用maven failsafe插件触发testng套件,其配置与 但是套件或其中的测试没有按照正确的顺序执行。有没有办法规定套房应按以下顺序执行 某个套房。xml 另一套。xml 还有一套。xml 我不关心套件中测试的执行顺序,但只希望在前一个套件完成后执行一个套件。是否有一些配置可用于实现相同的功能?