Конфиг капибары для одного теста
Я пытаюсь
describe "test", :js => true do
it "test" do
Capybara.default_max_wait_time = 3
Capybara::Webkit.configure do |config|
config.allow_unknown_urls
end
my test
end
it "test2" do
...
end
end
заменить конфиг капибары, который у меня есть в spec_helper только для одного теста, но я получаю сообщение об ошибке "Вся конфигурация должна быть выполнена до запуска драйвера".
Это мой spec_helper
Capybara.run_server = false
Capybara.default_max_wait_time = 1
Capybara.javascript_driver = :webkit_with_qt_plugin_messages_suppressed
Capybara::Webkit.configure do |config|
config.block_unknown_urls
end
RSpec.configure do |config|
config.include Capybara::DSL
end
Есть ли способ сделать это?
2 ответа
Решение
Для одного теста вы можете просто вызвать allow_unknown_urls на драйвере и использовать Capybara.using_wait_time, чтобы переопределить время ожидания по умолчанию для блока
describe "test", :js => true do
it "test" do
page.driver.allow_unknown_urls
using_wait_time(3) do
my test
end
end
it "test2" do
...
end
end
Вы должны положить его в spec/spec_helper.rb
, ты можешь использовать rspec --init
чтобы сгенерировать эти файлы, а затем добавить сюда конфиги капибары. Ваш подход неверен, не стоит хранить эту информацию в этом файле спецификаций.
Редактировать:
Ниже мой spec/spec_helper.rb
$ cat spec/spec_helper.rb
require 'vcr'
RSpec.configure do |config|
config.expect_with :rspec do |expectations|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end
config.mock_with :rspec do |mocks|
mocks.verify_partial_doubles = true
end
end
VCR.configure do |config|
config.cassette_library_dir = "spec/fixtures/vcr_cassettes"
config.hook_into :webmock
config.ignore_localhost = true
end