Самый простой способ сделать это, как показано ниже:
- Определите пользовательскую аннотацию, которая при использовании указывает, что конфигурация для определенного метода тестирования должна быть пропущена.
- Аннотируйте все
@Test
методы, для которых необходимо пропустить конфигурацию, используя эту новую аннотацию.
- В вашем методе конфигурации проверьте, имеет ли входящий метод эту аннотацию, и если да, пропустите выполнение.
Ниже приведен пример, который показывает все это в действии.
Аннотация маркера, указывающая, что метод конфигурации должен быть пропущен.
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target({METHOD, TYPE})
public @interface SkipConfiguration {
}
Образец теста класса
import java.lang.reflect.Method;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
public class TestClassSample {
@Test
@SkipConfiguration
public void foo() {}
@Test
public void bar() {}
@AfterMethod
public void teardown(Method method) {
SkipConfiguration skip = method.getAnnotation(SkipConfiguration.class);
if (skip != null) {
System.err.println("Skipping tear down for " + method.getName());
return;
}
System.err.println("Running tear down for " + method.getName());
}
}