Junit 5从未达到@BeforeAll inside @套房级别

fykwrbwg  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(125)

目前正在经历从Junit 4升级到Junit 5的过程,并遇到了一些以前在Junit 4中工作的障碍。
想知道是否有一种方法可以在也是@Suite的类中访问@BeforeAll/@AfterAll(以前是@BeforeClass/@AfterClass)
示例:

@Suite
@SelectClasses({
        SquareService.class,
        TriangleService.class
})
public class ShapeTestSuite { 

    @BeforeAll
    public void beforeAll() {
        Log.info("Shape Test Suite Start!");
    }

    @AfterAll
    public void afterAll() {
        Log.info("Shape Test Suite End!");
    }

}

我试过在这个类/套件中添加一个扩展,但似乎也不起作用。我错过了什么?任何帮助都将不胜感激。
谢谢

ig9co6j1

ig9co6j11#

@BeforeAll@AfterAll是来自Jupiter的注解,Jupiter是JUnit 5引擎之一。但是,@Suite是独立的,可以运行从任何JUnit 5引擎组合的测试和测试套件。这就是为什么不能在套件类中使用before-all方法。

axr492tv

axr492tv2#

@BeforeAll和@AfterAll在执行@Test、@TestFactory等之前运行。因此,如果您创建其中一个,您将看到代码将正确运行。

相关问题