не могу заставить работать capybara-webkit

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

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

Capybara::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, я получу ошибки выше:

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

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


person Rick Moss    schedule 14.09.2011    source источник


Ответы (3)


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

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

person StevenMcD    schedule 14.09.2011
comment
да, пробовал, но все равно не повезло, спасибо! любые другие предложения? - person Rick Moss; 14.09.2011
comment
к сожалению, нет :( Я проголосовал за ваш вопрос и буду следить за ним, если наткнусь на что-то еще. Удачи! - person StevenMcD; 14.09.2011

Ваше приложение перенаправляет на безопасный (https://) URL-адрес?

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

Capybara.register_driver :webkit do |app|
  Capybara::Driver::Webkit.new(app, :ignore_ssl_errors => true)
end
person Louis Simoneau    schedule 12.12.2011

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

person smathy    schedule 08.12.2011
comment
Спасибо за этот совет, у меня была проблема, описанная выше, и это заставило меня понять, что между установкой capybara-webkit и последующим его использованием я обновил QT до 4.8 на своей машине, и мне нужно было пересобрать гем :) Сэкономил мне часы разочарования - person workmad3; 14.03.2012
comment
Спасибо за комментарий (я узнаю вас по #rubyonrails :) - я надеялся, что кто-нибудь увидит это, и это будет именно тот маленький намек, который им нужен. - person smathy; 16.06.2012
comment
Какую версию Ubuntu вы использовали, @smathy? - person thekingoftruth; 19.12.2012
comment
На этом сервере мы использовали 10.04 LTS. - person smathy; 21.12.2012