Структура папок и файлов проекта следующая: config – параметры сред, в которых запускаются тесты features – тестовые сценарии, реализации шагов сценариев и прочие вспомогательные файлы resources – файлы необходимые для выполнения сценариев (например для вложения и отправки) screenshots – скриншоты сделанные во время выполнения тестов cucumber.yml – параметры для Cucumber Gemfile – файл с списком необходимых гемов проекта Gemfile.lock – файл с списком необходимых гемов проекта с их версией и зависимостями run_cucumber.sh – файл для запуска тестов 4.1. Папка config Параметры и настройки хранятся в папке config В ней расположены подпапка environments и файл settings.yml В подпапке environments yml-файлы с параметрами для разных сред: development – разработческая local – локальный запуск integration – запуск на интеграционной среде prelive – запуск на прелайв среде prod – запуск на продуктовой среде В каждом файле прописаны следующие важные параметры для запуска HOST – url среды на которой будут гонятся тесты HUB_URL – url хаба Selenium Grid В файле settings.yml прописаны параметры окна запускаемого браузера параметры для Capybara – время ожидания по умолчанию, путь к скринам 4.2. Папка features Сценарии на Gerkhin, реализации шагов сценариев и прочие вспомогательные файлы хранятся в папке featuresю 4.2.1. Структура В ней расположены подпапки Features, в которой хранятся features-файлы с сценариями на Gerkhin step_definitions, в которой хранятся rb-файлы, реализации шагов сценариев на Ruby support, в которой хранятся различные вспомогательные файлы, страницы PageObject, а также файлы hooks.rb и env.rb. 4.2.2. Папка Features Раньше все файлы features хранились в ней. Теперь было решено раскидать их по подпапкам, в зависимости от типа сценариев – проверок UI или проверок API бека. Соответственно и подпапки называются – UI Features и API Features. Внутри UI Features файлы распределены по папкам Business Events Features Card Emission Features Card Order Features Role Model Features То есть у нас имеется два больших бизнес процесса Заказ карты Выдача карты Внутри каждой папки … 4.2.3. Папка step_definitions Раньше также как и с feature файлами, все файлы Ruby лежали в одной папке, теперь решено было их поделить на API Steps и UI Steps 4.2.4. Папка support Тут расположены следующие папки и файлы Helpers Api… Pages Env.rb - Hooks.rb О них мы поговорим далее более подробно 4.3. Файл Cucumber.yml
4.4. Файл run_cucumber.sh
4.5. Файл env.rb
Файл env.rb — ключевой rb файл для запуска UI тестов. При инициализации переменных и файлов теста именно env.rb будет самым первым. В нем происходит регистрация браузера, на котором будут выполняться тестики.
4.6. Файл hooks.rb
Cucumber перед выполнением того или иного сценария, вызывает секцию Before do … end. А после завершения сценария — After do … end. Если вы помните, то Cucumber поддерживает работу с тегами, т. е. мы можем указать перед сценарием какое-нибудь имя тега и в секции «Before» устанавливать драйвер для Capybara. Так же можно выводить названия не пройденных тестов из раздела «After», или отправлять письма, отчеты и так далее.