2012-05-01 4 views
2

Я использую Capybara (используется как 1.1.1 и 1.1.2) в приложении rails 3.1.0. Я пытаюсь заставить Capybara работать для моего тестирования интеграции с помощью хромированного ребра. Когда я запускаю тестовый пакет либо проверить случай терпит неудачу с этой ошибкой:Capybara не работает в моем приложении rails

Selenium::WebDriver::Error::WebDriverError: unable to connect to chromedriver http://127.0.0.1:53468 

Когда я не использую chromedriver светлячок также не будет работать. Странно то, что когда я использую capybara от irb (не консоль рельсов), он отлично работает. Но, когда я пытаюсь использовать его с моим приложением Rails, всегда происходит ошибка выше.

Я думаю, что это связано с зависимостями, которые я загружаю, так как я работаю с Capybara в другом (Rails 2) проекте.

Если это помогает здесь моя Gemfile:

source 'http://rubygems.org' 

gem 'rails', '3.1.0' 
gem 'mysql2', '~> 0.3.6' 

gem 'pg' 



gem 'json' 
gem 'alchemist' 
gem "rails-backbone" 

group :assets do 
    gem 'sass-rails', "~> 3.1.0.rc" 
    gem 'coffee-rails', "~> 3.1.0.rc" 
    gem 'uglifier' 
end 

gem 'jquery-rails' 

group :test, :development do 
    gem 'jasmine' 
    gem 'capybara' 
    gem 'launchy' 
    gem 'rspec' 
    gem 'rspec-rails' 
    gem "factory_girl_rails", "~> 1.1" 
end 

Мой спецификации Helper выглядит следующим образом:

# This file is copied to spec/ when you run 'rails generate rspec:install' 
ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment", __FILE__) 
require 'rspec/rails' 
require 'capybara/rspec' 

требуют 'Капибара/Рельсы'

Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end 
Capybara.default_driver = :selenium 

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 

RSpec.configure do |config| 
    config.mock_with :rspec 
end 

Спасибо за любые идеи ,

PS. не уверен, что это полезно, но когда я использую chromedriver-helper камень Я получаю эту ошибку вместо того, чтобы:

no such file to load -- {"sessionId":"bcdf4c348c8f976cbe20f98120a456d0","status":0,"value":{"acceptSslCerts":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"browserName":"chrome","chrome.chromedriverVersion":"19.0.1068.0","chrome.nativeEvents":false,"cssSelectorsEnabled":true,"databaseEnabled":false,"handlesAlerts":true,"javascriptEnabled":true,"locationContextEnabled":false,"nativeEvents":true,"platform":"mac","rotatable":false,"takesScreenshot":true,"version":"18.0.1025.168","webStorageEnabled":false}} 

ответ

2

Требовать эти файлы в spec_helper

require 'capybara/rspec' 
    require 'capybara/rails' 

также проверить this post

+0

Спасибо, я добавил их, но все тот же вопрос. –

0

Мы также должны были установить javascript_driver to: chrome

ie особенности/поддержка/chrome.rb:

# Use Chrome for Selenium (@javascript) browser-based tests in Capybara. 
# Chromedriver, the Chromium project's selenium webdriver adapter, must 
# be installed on the test server. To ease the installation and use of 
# chromedriver, the chromedriver-helper gem is specified in the Gemfile. 
# 
# Updating Chromedriver 
# ===================== 
# If you'd like to force-upgrade to the latest version of chromedriver, 
# run the script 'chromedriver-update' that comes packaged with this 
# gem. 
# This might be necessary on platforms on which Chrome auto-updates, 
# which has been known to introduce incompatibilities with older versions 
# of chromedriver. 

Capybara.register_driver :chrome do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end 

# The chromedriver-helper docs don't list this as a requirement. 
# We only know about it from other chrome driver docs. 
Capybara.javascript_driver = :chrome 
Смежные вопросы