Configure RSpec to use the Capybara.javascript_driver for all request specs
-
24-07-2021 - |
Domanda
Is it possible globally configure RSpec to use Capybara's (default or custom) JavaScript driver for all request specs? We sometimes forget to manually add js: true
to every request spec and it's kind of annoying.
Soluzione
In spec_helper.rb, set the following:
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
Altri suggerimenti
For later versions of capybara and rspec, it's important to check for type being "feature"
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
or for RSpec 3 (pass example
into the block)
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
Refer to this solution if you want to run all test cases at once.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow