Cucumber: как реализовать поддержку/крючки для каталога функций.функциональность rb?
Мы используем огурец в качестве тестового жгута
У нас есть такая структура папок:
- automation
- api
- api1.feature
- api2.feature
- gui
- gui1.feature
- gui2.feature
- step_definitions
- api_steps.rb
- gui.steps.rb
- support
- hooks.rb
- cucumber.yml
- env.rb
- Gemfile
- Rakefile
Мне нужно, чтобы в моих крючках происходили разные действия.файл rb (или каталог поддержки в целом)для тестов api и тестов gui. Для моих тестов api мне нужно авторизоваться через наш restapi и получить файл cookie auth. Для моих тестов gui мне нужно создать экземпляр браузера selenium.
Мне нужно, чтобы это работало, когда я выполняю все, выпуская "огурец" в одиночку из уровень "автоматизации" этой структуры папок и когда я выполняю один файл функций, делая:
$ cucumber gui/gui1.feature -r features
Поэтому мои вопросы касаются того, как лучше всего это сделать.
- могу ли я / должен ли я создать какую-то условность в своих крючках.rb-файл в блоке 'Before do' для выполнения различных действий before, основанных на том, из какого каталога выполняется функция?
- или я могу / должен создать отдельные опоры / крючки.rb каталоги/файлы внутри каждого из каталогов " api " и графический интерфейс? (эффективно ли Cucumber распознает и избирательно использует несколько каталогов поддержки?)
Спасибо!
2 ответа:
Огурец действительно не заботится о каталогах и существует только для организационных целей. Я бы постарался избежать любой реализации, основанной на расположении файлов.
Я бы реализовал это с помощью помеченных сценариев и крючков.
Before('@gui') do # create browser/login end Before('@api') do # create restapi/auth cookie end Before ('~@gui','~@api') do fail('Silly developer, all scenarios must have an @api or @gui tag!') end
Если вы запустите
cucumber --help
и посмотрите, в частности, на опцию-r
, вы обнаружите, что есть альтернативный подход, который вы можете использовать. Один из них заключается в запуске отдельных экземпляров cucumber с различными включенными файлами. Лучший способ настроить это с помощью профилей через cucumber.в формате YML.Вы можете легко настроить профиль gui, чтобы включить hooks / gui.РБ и профилей API, чтобы включить крючки/АРІ
Если вам нужно получить еще больше разделения, другой подход будет заключаться в том, чтобы запустить cucumber от каждого из ваших вложенная папка, например automation / api automation / gui, и создайте структуру поддержки / крючков внутри этих папок.