Я пытаюсь выполнить некоторые тесты с Rspec/Capybara/Poltergeist в моем приложении Rails 4, Phantomjs установлен (версия 2.2.1), но я всегда получаю эту ошибку:Capybara :: Poltergeist Ошибка состояния, не удалось связаться с сервером
Failure/Error: visit(perfect_landing_page_path)
Capybara::Poltergeist::StatusFailError:
Request to ' http://127.0.0.1:49623/path ' failed to reach server, check DNS and/or server status
тест я работаю над:
require 'rails_helper'
RSpec.feature 'Subscription', :type => :feature do
let!(:plan) { create(:plan) }
let!(:landing_page) { create(:landing_page) }
before(:each) { landing_page.default_plan = plan }
describe 'landing_page#perfect_show' do
scenario 'form display', js: true do
plan_2 = create(:plan)
plan_3 = create(:plan)
landing_page.plans << plan_2
landing_page.plans << plan_3
visit(perfect_landing_page_path)
expect(page).to have_css(".start-now", count: 3)
first(".start-now").click
expect(page).to have_css("#new_user")
end
end
end
Мои Gemfile выглядит следующим образом:
gem 'rspec-rails', '~> 3.0'
gem 'factory_girl_rails'
gem 'guard-rspec'
group :test do
gem 'database_cleaner'
gem 'capybara'
gem 'capybara-screenshot'
gem 'poltergeist'
gem 'selenium-webdriver'
gem 'shoulda-matchers', require: false
gem 'show_me_the_cookies'
end
Мой спецификации файла/поддержка/capybara.rb:
require 'capybara/rails'
require 'capybara/rspec'
require 'capybara-screenshot/rspec'
require "capybara/poltergeist" # Add this line to require poltergeist
require 'selenium-webdriver'
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, {:js_errors => false, :default_max_wait_time => 30, :timeout => 30, phantomjs_options: [
'--load-images=no',
'--ignore-ssl-errors=true',
'--ssl-protocol=any']})
end
Capybara.register_driver :poltergeist_debug do |app|
Capybara::Poltergeist::Driver.new(app, :inspector => true)
end
Capybara.configure do |config|
config.javascript_driver = :poltergeist
config.ignore_hidden_elements = true
config.default_max_wait_time = 30
end
Мой spec_helper.rb файл:
require 'capybara/rspec'
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
config.filter_run :focus
config.run_all_when_everything_filtered = true
ли кто-то столкнулись с этой проблемой раньше? У кого-нибудь есть решение для этого? Я несколько раз бил головой, глядя в Интернет ... Большое спасибо.
PS: он отлично работает на mac моего друга (Yosemite или El Capitan), только не на моем.
Вы можете публиковать сообщения с полной ошибкой?То, что вы опубликовали, усечено и отсутствует самая важная часть (деталь ошибки). – agbodike
Я обновил ответ, чтобы добавить альтернативу белым списком. – agbodike