Вы можете попробовать использовать слушатели 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