我的要求是对一组测试进行一些初始化,并在所有测试完成后将其清除。这些测试在一些测试类上旋转,因为它们并不密切相关,但需要一个共同的初始化。
我@SelectClasses
用来形成套件并尝试使用@ExtendWith
应该处理预处理和后处理的自定义扩展。这不起作用,我不确定 JUnit 中是否存在适当的解决方案。分享已经尝试过的示例代码。
套房:
@SelectClasses({FirstTest.class, SecondTest.class})
@ExtendWith(SuiteExtension.class)
@RunWith(JUnitPlatform.class)
@SuiteDisplayName("test suite")
public class SuiteClass {
}
扩大:
public class SuiteExtension implements BeforeAllCallback, AfterAllCallback {
@Override
public void afterAll(ExtensionContext context) throws Exception {
System.out.println("afterAll");
}
@Override
public void beforeAll(ExtensionContext context) throws Exception {
System.out.println("beforeAll");
}
}
测试类 1:
public class FirstTest {
@Test
void test1(){
System.out.println("test1");
}
}
测试类 2:
public class SecondTest {
@Test
void test2(){
System.out.println("test2");
}
}
输出:
test1
test2
预期输出:
beforeAll
test1
test2
afterAll