Какой порт и домен использует capybara-webkit при работе без головы? - PullRequest
1 голос
/ 17 февраля 2012

У меня есть приложение, которое использует домены, хранящиеся в таблице, для определения определенных аспектов сайта. Если домен не найден в БД, генерируется ошибка.

Когда я тестирую с огурцом нормально, я использую домен localhost, и все работает как положено. Когда я пытаюсь провести тестирование с помощью capybara-webkit и безголового (для тестирования частей сайта на javascript), я получаю сообщение об ошибке «домен не найден» для localhost.

Может кто-нибудь сказать мне, как я могу определить домен и порт, который используют capybara-webkit и headless, чтобы я мог убедиться, что я могу вставить информацию в таблицы заранее. Или же вместо этого установите заранее Капибару.

Я попробовал следующее безуспешно (хотя все это работает для моих тестов none js / headless).

Capybara.app_host = "http://localhost"
Capybara.javascript_driver = :webkit

if Capybara.current_driver == :webkit
  require 'headless'

  headless = Headless.new
  headless.start
end

1 Ответ

1 голос
/ 17 февраля 2012

Немного проб и ошибок я нашел то, что работает.Я перестал использовать localhost в качестве ссылки в базе данных и вместо этого использовал 127.0.0.1.Затем я изменил код в env.rb следующим образом.

Capybara.javascript_driver = :webkit

if Capybara.current_driver == :webkit
  require 'headless'

  @headless = Headless.new
  @headless.start
end

Before('@javascript') do
  @javascript = true
end

Capybara.app_host = @javascript.present? ? nil : "http://127.0.0.1"

Я понимаю, что переменная @javascript здесь излишня для требований, но я использую ее в другом месте.Я не уверен, почему это работает, но это работает!

...