3

Rails 3.1.0 アプリケーションで Capybara (1.1.1 と 1.1.2 の両方を使用) を使用しています。chromedriver を使用して統合テストのために Capybara を実行しようとしています。テスト スイートを実行すると、テスト ケースが次のエラーで失敗します。

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

chromedriver Firefox を使用しないと動作しません。奇妙なことに、irb(Rails コンソールではなく) カピバラを使用すると正常に動作します。しかし、Rails アプリケーションをロードして使用しようとすると、上記のエラーが常に発生します。

別の(Rails 2)プロジェクトでCapybaraを正常に実行しているため、ロードしている依存関係と関係があると思います。

ここで役立つ場合は、私の 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

私の仕様ヘルパーは次のようになります。

# 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-helpergem を使用すると、代わりに次のエラーが発生します。

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}}
4

2 に答える 2

2

spec_helper でこれらのファイルを要求する

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

この投稿もチェックしてください

于 2012-05-01T10:00:52.360 に答える
0

また、javascript_driver を :chrome に設定する必要がありました

つまり、機能/サポート/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
于 2012-08-09T14:32:18.747 に答える