Сконфигурируйте RSpec для использования Capybara.javascript_driver для всех спецификаций запроса
Возможно ли глобально настроить RSpec для использования драйвера JavaScript Capybara (по умолчанию или пользовательского) для всех спецификаций запроса? Иногда мы забываем добавить вручную js: true
на каждый запрос спецификации, и это немного раздражает.
3 ответа
Решение
В spec_helper.rb установите следующее:
config.before(:each) do
if example.metadata[:type] == :request
Capybara.current_driver = :selenium # or equivalent javascript driver you are using
else
Capybara.use_default_driver # presumed to be :rack_test
end
end
Для более поздних версий capybara и rspec важно проверить, является ли тип "особенным"
config.before(:each) do
if [:request, :feature].include? example.metadata[:type]
Capybara.current_driver = :poltergeist # or equivalent javascript driver you are using
else
Capybara.use_default_driver # presumed to be :rack_test
end
end
или для RSpec 3 (пропуск example
в блок)
config.before(:each) do |example|
if [:request, :feature].include? example.metadata[:type]
Capybara.current_driver = :poltergeist # or equivalent javascript driver you are using
else
Capybara.use_default_driver # presumed to be :rack_test
end
end
Обратитесь к этому решению, если вы хотите запустить все тестовые случаи одновременно.