【问题标题】:Junit5- jupiter all tests suite @BeforeAll @AfterAll not workingJunit5-木星所有测试套件@BeforeAll @AfterAll 不工作
【发布时间】:2019-09-09 13:42:12
【问题描述】:

before 和 after 方法在 JUnitPlatform 中不起作用。

代码如下。

import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectClasses;
import org.junit.runner.RunWith;

@RunWith(JUnitPlatform.class)
@SelectClasses({
        MyControllerTest.class
})
public class AdminAppTest {

    @BeforeAll
    public static void setUp() {
        System.out.println("setting up");
    }

    @AfterAll
    public static void tearDown() {
        System.out.println("tearing down");
    }
}

我只想在方法之前和之后运行。

谢谢

【问题讨论】:

    标签: spring-boot junit integration-testing spring-boot-test junit-jupiter


    【解决方案1】:

    我可以引用 JUnit 5 migration tipps:

    @Before@After 不再存在;请改用@BeforeEach@AfterEach

    @BeforeClass@AfterClass 不再存在;请改用@BeforeAll@AfterAll

    但是这些注释应该在你的测试类中使用。您的套件类中的方法不会以这种方式调用。您应该知道,套件和 JUnit 5 仍在开发中(请参阅 Issue 744)。

    【讨论】:

      【解决方案2】:

      您可能需要检查 org.junit.jupiter:junit-jupiter-engine 是否在您的 类路径中。

      不过,最新版本的构建工具(带有 surefire 插件的 Maven、Gradle、Eclipse、IntelliJ 等)支持 junit-platform。因此,您不需要将 JUnit4 与向后兼容的运行器一起使用。

      通常你可以在以下几种情况:

      • 创建新项目,在这种情况下,您可以直接使用 JUnit-Jupiter 开始(并且在您的类路径中没有 JUnit4)

      • 将项目从 JUnit4 迁移到 JUnit5。在这里,您将需要两个引擎:JUnit-Vintage,它涵盖了使用 JUnit4 API 对现有测试的追溯兼容性,以及 JUnit-Jupiter,它提供了更多的灵活性,包括扩展的组合(同时具有 Spring、Mockito 和参数化测试功能)例如时间)

      当您受到无法更改的环境(构建工具和/或 IDE)的限制时,使用 JUnit4 运行程序运行 JUnit-Jupiter 测试确实是一种极端情况。

      有关更多详细信息,JUnit 团队提供了示例项目:

      希望这会有所帮助!

      【讨论】:

      • 类路径中不是还需要 org.junit.jupiter:junit-jupiter-api 吗?
      • 当然可以,但它是junit-jupiter-engine的传递依赖。因此,如果您使用的是 Maven 或 Gradle 等常规构建工具,则不必担心。此外,现在我们使用 org.junit.jupiter:junit-jupiter 依赖项,它嵌入了所有与 jupiter 相关的依赖项,并且更像是您在 Spring-Boot 星系中可能找到的入门。在大多数情况下,不再需要对 jupiter-api 或 jupiter-engine 有显式依赖。
      • 知道了。谢谢!
      猜你喜欢
      • 2022-12-09
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      相关资源
      最近更新 更多