Класс определения шага огурца после хука выполняется, даже если класс определения шага не используется? - PullRequest
0 голосов
/ 24 мая 2018

Итак, у меня есть довольно простой проект, использующий Appium / Cucumber / Gherkin на Java с JUnit.Первоначально я хотел использовать теги @Before и @After в каждом из моих классов StepDefinition для создания драйвера, выхода из драйвера и отправки отчета.Проблема, с которой я сталкиваюсь, заключается в том, что даже если ни один из моих шагов не существует внутри класса определения шага, сам класс все еще создается, что приводит к запуску моих тегов @Before и @After.

У меня есть обходной путьдля инициализации, в основном, переместив создание моего драйвера в фоновый режим.Но я не смог найти способ, как правильно использовать драйвер для выхода и сообщить о функциональности.Я почти уверен, что мог бы сделать то же самое для своего последующего случая, если бы я заставил функциональность сделать последний шаг в каждом из моих сценариев, но я надеялся на более чистый и более глобальный подход.

Работает ли это какпредназначена?или классы Step Definition должны создаваться только тогда, когда фактически используется одна из их функций?Вы сталкивались с этим раньше?

1 Ответ

0 голосов
/ 24 мая 2018

Крючки в огурце носят глобальный характер.То есть, если методы ловушки закодированы в любом классе, определенном в структуре пакета, заданной параметру glue из CucumberOption, они будут выполнены.

Выход состоит в том, чтобы использовать теги какфильтры в хуках до и после.А также вы можете исправить порядок выполнения этих тегов.

Если вы хотите, чтобы сценарий открывал браузер в Before ловушке, присвойте сценарию тег @Browser.А в аннотации @Before используйте его как @Before("@Browser").Это будет работать только для сценариев с тегом Browser.То же самое касается After hook.

Вы можете добавить атрибут порядка к тегам Before and After, чтобы получить приоритет.@Before(value="@Browser", order=5).Это будет выполняться перед методом До ловушки с порядком, скажем, 10. Для После ловушка порядка 10 будет работать до одного с 5.

...