Всем привет!
Коллеги, есть тесты на Rspec, есть хук с запуском браузера после каждого примера (each) в конфиге, а так же есть потребность, в некоторых тестах выполнять хук перед запуском всех примеров (all). Если писать в конкретных тестах before(:all), то так появляется ошибка, если в конфиге писать и each и all, то запускается 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
Не в тему, но все-же. Используейте Capybara и не будете мучаться с запуском браузеров - Capybara будет запускать браузер за вас при первом обращении к Сapybara.page