Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Разное выполнение хуков на Rspec (each и all)


#1

Всем привет!
Коллеги, есть тесты на Rspec, есть хук с запуском браузера после каждого примера (each) в конфиге, а так же есть потребность, в некоторых тестах выполнять хук перед запуском всех примеров (all). Если писать в конкретных тестах before(:all), то так появляется ошибка, если в конфиге писать и each и all, то запускается 2 браузера, что тоже не годится. Есть у кого-нибудь мысли как внедрять хук в тест, отменяющий хук в конфиге?


(Lev Yarushin) #2

Попробуйте использовать мета-данные. В конфиге в зависимости от наличия мета-данных запускаете или не запускаете браузер.
Пример:
в rails_helper.rb:

RSpec.configure do |config|
  config.after(:each) do |example|
    next if example.metadata[:special]
    [код запуска браузера]
  end
end

непосредственно в теле теста:

before(:all) do
   [код запуска браузера]
end

it 'tests something special', :special => true do
...
end


(Vitalii Grygoruk) #3

Не в тему, но все-же. Используейте Capybara и не будете мучаться с запуском браузеров - Capybara будет запускать браузер за вас при первом обращении к Сapybara.page