目前正在经历从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!");
}
}
我试过在这个类/套件中添加一个扩展,但似乎也不起作用。我错过了什么?任何帮助都将不胜感激。
谢谢
2条答案
按热度按时间ig9co6j11#
@BeforeAll
和@AfterAll
是来自Jupiter的注解,Jupiter是JUnit 5引擎之一。但是,@Suite
是独立的,可以运行从任何JUnit 5引擎组合的测试和测试套件。这就是为什么不能在套件类中使用before-all方法。axr492tv2#
@BeforeAll和@AfterAll在执行@Test、@TestFactory等之前运行。因此,如果您创建其中一个,您将看到代码将正确运行。