Конфиг капибары для одного теста

Я пытаюсь

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
Другие вопросы по тегам