У меня проблема с тем, что тестовые примеры ломаются или работают в зависимости от того, помечены они тегом @Ignore или нет. Это проект, в котором набор тестов разработан с использованием файлов функций Cucumber и фреймворка Serenity BDD. Я могу надежно воспроизвести его в фиктивном проекте, но я даже не уверен, является ли это проблемой или предполагаемым поведением. Что бы это ни было, я нигде не могу найти к нему документации.
В фиктивном проекте я создал файл функций, который ничего не делает, кроме попытки перехода на веб-страницу. TestRunner настроен следующим образом:
@RunWith(CucumberWithSerenity.class)
@CucumberOptions(
glue = {"..."},
features = {"src/test/resources/features"},
strict = true,
tags = {"@Login"},
stepNotifications = true
)
public class LocalTestRunner {
}
Затем у меня есть функция, помеченная как «@Login» и содержащая только один шаг в сценарии, который снова ничего не делает, кроме вызова goToHomePage () этой страницы. object:
public class LoginPage extends PageObject {
public LoginPage() {
}
public void goToHomePage() {
WebDriver driver = getDriver();
// this will do nothing if the scenario is tagged with @Ignore
driver.get("...");
}
}
Причина сбоя моих тестов в том, что мы не можем go перейти на нужную веб-страницу, поскольку WebDriver.get (...) в этом случае ничего не делает. Теперь мой вопрос: есть ли документация для такого поведения? Я пробовал поискать в Google в течение 2 часов и нигде не могу найти упоминания об этом.
Перед появлением ответов «Не используйте @Ignore, если вы не хотите запускать сценарий»: Достаточно справедливо . В нашей команде принято помечать тесты @Ignore, которые все еще находятся в разработке. Я просто хочу получить объяснение, которое я могу четко передать своей команде, почему они должны это учитывать. Потому что, если вы решите выполнить тест с тегом @Ignore, он просто случайно не сработает, и вы не поймете, почему.