Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

[Resolved] Можно ли как то игнорить выполнение конкретных степов, а не всего теста? (JUnit)


(Yaroslav Pernerovskyy) #1

Возможно ли в принципе делать @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, кроме того, не парсится имя тестового метода, ну и т.п.

Хочется как то сделать так, что бы тест ранился, но незаиплеменченные степы скипались и это было видно в отчете.

Это реально реализовать? )


(sidelnikovmike) #2

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 не будет запущен. Ну дальше уже функциональность можно прикручивать какую хочется.


(sidelnikovmike) #3

Как это отобразить в отчетах - другой вопрос. Разве что можно отобразить сообщение в виде шага аллюровского. По другому - пока идей нету.


(Yaroslav Pernerovskyy) #4

Спасибо за AspectJ, пришлось разобратся что это и зачем (много нового открыл )) ) Вариант возможный, но надо научить аллюр понимать то, что мы напридумывали. На это пока не выделяют время. Интересовало в первую очередь нативное и главное быстрое :slight_smile: решение. Почему-то думал, раз в Thucydides это есть, то тут тоже должно быть.

В любом случае спасибо за ответ и за раскрытие новых горизонтов )))


(sidelnikovmike) #5

Обращайтесь! Всегда рад помочь.
Если что-то придумаете - дайте знать.

Ну видите -allure это все же репортинг фреймворк, а сусидидис - там всего много накручено.