Вы можете использовать наследование и аннотацию @BeforeAll
, опционально с флагом для выполнения только один раз для всех наследующих классов теста.
public class ModuleBaseClass {
private static boolean started = false;
@BeforeAll
public static void beforeAllMethod() {
if (!started) {
System.out.println("@BeforeAll static method invoked once.");
started = true;
}
System.out.println("@BeforeAll static method invoked for every class.");
}
}
public class ModuleFeature1Class extends ModuleBaseClass {
@Test
public void testMethod() {
System.out.println("ModuleFeature1Class: in testMethod().");
}
}
public class ModuleFeature2Class extends ModuleBaseClass {
@Test
public void testMethod() {
System.out.println("ModuleFeature2Class: in testMethod().");
}
}
Это выведет:
@BeforeAll static method invoked once.
@BeforeAll static method invoked for every class.
ModuleFeature1Class: in testMethod().
@BeforeAll static method invoked for every class.
ModuleFeature2Class: in testMethod().
Таким же образом вы можете использовать аннотацию @ AfterAll для выполнения после ваших тестов.