Как я могу заставить JBehave либо переопределить, либо пропустить "@BeforeStories" только для нескольких конкретных историй? - PullRequest
0 голосов
/ 18 мая 2018

У нас есть @BeforeStories в общем файле для нашего проекта автоматизации JBehave / Java / Selenium, который выполняет некоторые шаги настройки, которые нам нужны для большинства файлов истории в нашем проекте автоматизации.Но есть несколько новых файлов истории, в которых мы не хотим запускать все в @BeforeStories.В идеале я мог бы просто удалить некоторые из этих элементов из @BeforeStories, если они не применяются к каждому файлу .story.На самом деле это наша конечная цель, но это не то, что мы хотим сделать в данный момент, поскольку это повлияет на многие существующие тесты.В любом случае, если бы я мог переопределить @BeforeStories только для нескольких файлов истории, это сработало бы.Затем я могу взять части @BeforeStories, которые я хочу запустить, для новых файлов .story, а затем пропустить другие части, которые я не хочу запускать, для новых файлов .story, которые я создаю.Пропуск @BeforeStories также будет работать для этих новых файлов .story, поскольку я мог бы найти другие способы обработки необходимых шагов настройки для новых файлов .story (т. Е. Добавить «@BeforeStory» в новые файлы .story для обработки необходимых файлов.например, настроить шаги в новом файле .story).Возможно ли переопределение или пропуск @BeforeStories?Заранее спасибо за любой совет.

1 Ответ

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

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

В качестве примера, в моем наборе тестов Appium я размещаю код для запуска Appium Server и код для инициализации моегоОбъект отчетов об экстентах в @BeforeStories в базовом классе.

Однако, поскольку каждая история имеет свое собственное приложение, я не устанавливаю там соединение, а делаю это в @BeforeStory каждого класса шагов, вместе сдальнейшее определение объекта Extent Reports и запуск эмулятора, если применимо.

Первоначально у меня были эти шаги @BeforeStory в моем базовом классе @BeforeStories, пока у меня не было нескольких историй для запуска.

...