首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >朱庇特5日-木星所有测试套件

朱庇特5日-木星所有测试套件
EN

Stack Overflow用户
提问于 2019-04-19 08:59:19
回答 3查看 8.7K关注 0票数 5

在JUnitPlatform中不起作用的前后方法。

代码在下面。

代码语言:javascript
复制
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");
    }
}

我只想跑之前和之后的方法。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-19 22:02:06

我可以引用JUnit 5 迁移提示

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

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

但是这些注释应该在您的测试类中使用。套件类中的方法不会以这种方式调用。您应该意识到,套件和JUnit 5仍在进行中(请参阅第744期)。

票数 3
EN

Stack Overflow用户

发布于 2022-06-10 10:07:16

在遇到同样的问题之后,就遇到了这个问题,@毕竟,也没有调用@AfterEach注释的方法。在我的例子中,问题是JUnit4的一个不正确的导入潜入了我的测试类,我导入的是org.junit.Test而不是org.junit.jupiter.api.Test。一旦修复了这个问题,我的带注释的方法就再次被愉快地调用了。

票数 3
EN

Stack Overflow用户

发布于 2019-07-09 11:57:44

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

然而,最近版本的构建工具(Maven与尽力而为的插件,Gradle,等)支持junit-platform.因此,您不需要在向后兼容的运行程序中使用JUnit4。

通常,您可以在下列情况下:

  • 创建新项目,在这种情况下,您可以直接使用JUnit-木星(并且在类路径中没有JUnit4 )
  • 将项目从JUnit4迁移到JUnit5。在这里,您需要两个引擎: JUnit4,它包含使用JUnit4 API的现有测试的追溯兼容性,和JUnit-Jupiter,后者提供了更多的灵活性,包括扩展的组合(例如,同时具有Spring和参数化测试特性)。

使用JUnit4运行程序来运行JUnit-木星测试确实是一个问题,因为您受到了无法更改的环境(构建工具和/或IDE)的限制。

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

希望这能帮上忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55759240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档