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

在junit中执行测试套件的订单

傅正阳
2023-03-14
问题内容

我有一个测试套件,其结构如下

TestClass1
      - testmethod1()
      - testmethod2()
      - testmethod3()
      - testmethod4() 
TestClass2
          - testmethod11()
          - testmethod22()
          - testmethod33()
          - testmethod44()

在以上结构中,我想执行testmethod4()作为最后一个。即)最后执行。有一个@FixMethodOrder注释,它按顺序执行方法而不是testclass。是否有任何机制可以同时维护测试类和测试方法中的顺序。使用@FixMethodOrder,我可以通过重命名测试方法的名称来执行该方法,但是我不能指示junit将测试类作为最后一个(最后一个)执行。


问题答案:

虽然再次引用@Andy-

您不必关心测试顺序。如果这很重要,则说明测试之间具有相互依赖性,因此您要测试行为+相互依赖性,而不仅仅是行为。以任何顺序执行时,您的测试应工作相同。

但是,如果需要这样做,您可以尝试一下
Suite

@RunWith(Suite.class)

@Suite.SuiteClasses({
        TestClass2.class,
        TestClass1.class
})
public class JunitSuiteTest {
}

您可以在其中指定

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestClass1 {

    @AfterClass
    public void testMethod4() {

然后注意将您的方法命名testMethod4为在末尾执行,或者也可以使用在Junit5中@AfterClass不久将被替换的@AfterAll方法。

看看Alan
Harder的《控制JUnit测试的顺序》



 类似资料:
  • 这是我当前的maven-surefire-plugin配置:

  • 有4个类包含测试< code>TestClass1、TestClasss2、TestClass3、TestClass4。您需要创建2个测试套件,每个套件将包含2个类,并使用< code>Maven surefire插件并行运行它们。 我创建了两个包含以下内容的xml文件: 和 也添加到: 接下来,我用命令< code>mvn clean test运行项目,项目将要运行,但是测试没有开始。我哪里错了

  • 问题内容: 如何使用JUnit 4创建测试套件? 我看过的所有文档似乎都不适合我。而且,如果我使用Eclipse向导,它不会为我提供选择已创建的任何测试类的选项。 问题答案:

  • 我有以下代码: 测试类别: 套件类别: My: 这将在Idea和控制台中执行带有0个测试的套件(使用)。 如果我恢复注释掉的,它将运行所有测试,无论它们是否被标记。我这里缺少什么?这是一个错误吗?

  • 问题内容: 如何从命令行运行Junit 4.8.1测试套件?另外,我想使用JUnit 4.8引入的类别,有没有一种方法可以从命令行指定要运行的类别。 问题答案: 从4.8开始,无法从命令行指定类别。