Czy jest możliwe globalne skonfigurowanie RSpec do używania sterownika JavaScript Capibara (domyślnego lub niestandardowego) dla wszystkich specyfikacji zleceń? Czasami zapominamy o ręcznym dodawaniu js: true
do każdej specyfikacji zamówienia i jest to dość irytujące.Skonfiguruj RSpec, aby używał Capybara.javascript_driver dla wszystkich specyfikacji żądań.
Odpowiedz
W spec_helper.rb ustaw następujące:
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
nowszych wersjach kapibary i RSpec, ważne jest, aby sprawdzić, czy typ jest "funkcja"
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
lub RSpec 3 (przekazać example
do bloku)
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
Jeśli używasz RSpec> = 3, będziesz musiał napisać pierwszy wiersz tego, jak 'config.before (: each) do | example |', aby uzyskać takie samo zachowanie. Więcej przez @ joshua-muheim tutaj: http://stackoverflow.com/a/24571607/2948832 – styger
@styger, Dzięki, zaktualizowałem odpowiedź. – justingordon
Skorzystaj z tego rozwiązania, jeśli chcesz uruchomić wszystkie testy ses od razu.
Umieść odpowiednie informacje w poście. –
To działa, ale chciałbym, aby ograniczyć to żądanie specyfikacji. Oczywiście mógłbym umieścić ten wiersz w każdym pliku specyfikacji żądania, ale chciałbym go skonfigurować globalnie. Tak jak w przypadku niektórych typów specyfikacji, możesz dołączyć określone moduły. – rubiii
@rubiii zaktualizowany ze sposobem sprawdzenia dla typu specyfikacji – prusswan
wygląda dobrze. Dziękuję Ci bardzo! – rubiii