Возможно ли в принципе делать @Ignore для конкретных степов?
Типа такой код не вызывает вопросов у компилятора:
@Ignore("Not implemented")
@Step
public void setFilter(String string) {
//TODO
}
но он не работает, степ все равно исполняется ((
Если же делать как то так:
@Features("Search")
@Stories("User can search by Name")
@Test
@Ignore("Not implemented")
public void verifyUserSearchByName() {
steps.enterLoginDetails("user","pas");
steps.navigateToSearch();
steps.setFilter("User");
steps.doSearch("test");
steps.makeScreenshot();
}
то тест игнорится, но при этом не берутся во внимание аннотации фича/стори, пишет Without feature > Without story, кроме того, не парсится имя тестового метода, ну и т.п.
Хочется как то сделать так, что бы тест ранился, но незаиплеменченные степы скипались и это было видно в отчете.
Ignore - это из Junit/TestNG. И работают они только для тестов.
Если хотите игнорить методы - поглядите в сторону AspectJ.
Класс будет выглядеть примерно так: @Aspect
public class SkipTestAspects { @Pointcut("@annotation(ru.companyname.annotations.SkipStepAnnotation)")
public void withSkipTestAnnotation() {
//pointcut body, should be empty
}
@Pointcut("execution(* ru..*.*(..))")
public void anyMethod() {
//pointcut body, should be empty
}
@Around("anyMethod() && withSkipTestAnnotation()")
public void aroundMethodWithDomainAnnotation(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
//Do nothing
}
}
При этом метод, помеченный аннотацией SkipStep не будет запущен. Ну дальше уже функциональность можно прикручивать какую хочется.
Спасибо за AspectJ, пришлось разобратся что это и зачем (много нового открыл )) ) Вариант возможный, но надо научить аллюр понимать то, что мы напридумывали. На это пока не выделяют время. Интересовало в первую очередь нативное и главное быстрое решение. Почему-то думал, раз в Thucydides это есть, то тут тоже должно быть.
В любом случае спасибо за ответ и за раскрытие новых горизонтов )))