Не могу получить capybara-webkit для работы

Я использую capybara для тестирования интеграции в моем приложении rails 3.

Когда я добавляю: js = > true для сценария, мои тесты работают с селеном, но когда я меняю использование драйвера webkit для js, я получаю ошибки для каждого типа:

Капибара:: Driver:: Webkit:: WebkitInvalidResponseError: Не удалось загрузить URL: http://www.example.dev:7171/user_sessions

Мое добавление - это многодоменное приложение, поэтому в моем spec_helper я устанавливаю порт: Capybara.server_port = 7171

И в фоновом блоке я установил app_host следующим образом: Capybara.app_host = " http://# {subdomain}.example.dev: 7171"

Если я затем добавлю это в свой блок spec_helper rspec.configure i, тогда получите ошибки выше:

config.before(:each) do
   DatabaseCleaner.start
   Capybara.run_server = false
   Capybara.javascript_driver = :webkit
   Capybara.default_selector = :css
   Capybara.server_port = 7171 
end

Может ли кто-нибудь помочь с этим? Я также использую spork для автоматического тестирования.

Ответы

Ответ 1

Существует открытая проблема для проблемы, которая выглядит именно так: github = > https://github.com/thoughtbot/capybara-webkit/issues/87

У них есть некоторые варианты обходных решений, посмотрите, не поможет ли вам это. Удачи!

Ответ 2

Является ли ваше приложение перенаправлено на защищенный (https://) url?

Если это так, вам нужно будет переопределить драйвер: webkit для Capybara с опцией :ignore_ssl_errors, установленной на true:

Capybara.register_driver :webkit do |app|
  Capybara::Driver::Webkit.new(app, :ignore_ssl_errors => true)
end

Ответ 3

Просто хотел сказать, что у нас была такая же ошибка на нашем сервере Ubuntu CI. Это была сборка LTS, поэтому была запущена более ранняя версия libqt (v4.6.2) - обновление (с использованием tarball) до 4.7.4. Вероятно, это не поможет вашей ситуации, но что-то стоит проверить.