Вы можете попробовать использовать для этого слушатели TestNG. Например, у нас может быть следующий тестовый класс com.example.SampleTest
:
public class SampleTest {
@BeforeClass
public void setUp() {
System.out.println("Executing before class method.");
}
@Test
public void test() {
Assert.assertEquals(1, 1);
}
@AfterClass
public void tearDown() {
System.out.println("Executing after class method.");
}
}
Чтобы отключить выполнение @AfterClass
метода, вы можете создать слушателя com.example.AfterClassListener
следующим образом:
public class AfterClassListener implements IAnnotationTransformer2 {
@Override
public void transform(IConfigurationAnnotation annotation, Class testClass,
Constructor testConstructor, Method testMethod) {
if (annotation.getAfterTestClass()){
annotation.setEnabled(false);
}
}
}
После этого добавьте этого слушателя в свой testng.xml
файл:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="test-suite" verbose="1" thread-count="3" parallel="none">
<listeners>
<listener class-name="com.example.AfterClassListener"/>
</listeners>
<test name="Login Test">
<classes>
<class name="com.example.SampleTest"/>
</classes>
</test>
</suite>
Когда вы захотите снова включить его, просто удалите этого слушателя из testng.xml
person
bhusak
schedule
03.10.2019
@AfterClass
, который тогда не очистит тестовую площадку? Было бы сложно поддерживать тесты, когда@AfterClass
, который должен быть вызван после завершения теста с классом, фактически не вызывается. - person Progman   schedule 03.10.2019