Capybara 2.1 Ошибка неинициализированной константы Rails (NameError)

Я только что обновил свой Capybara Gem с версии 1 до 2.1.0 (последний). На основе Capybara Readme я добавил следующие строки в свой spec_helper.rb внутри блока Spork.prefork

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

Но у меня есть ошибка

/home/user_1/.rvm/gems/ruby-1.9.3-p392/gems/capybara-2.1.0/lib/capybara/rails.rb:6:in `block (2 levels) in <top (required)>': uninitialized constant Rails (NameError)

Неужели я пропустил что-то, чтобы капибара работала правильно?

Ответы

Ответ 1

Убедитесь, что сначала требуется "rspec/rails":

require 'rspec/rails'

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

Если вам сначала требуется "capybara/rails", вы получите эту ошибку.

Ответ 2

В вашем файле spec_helper.rb эта ошибка может быть вызвана добавлением строки require 'capybara/rails' в верхней части кода файла.

Вместо этого, если вы посмотрите примерно на полпути, что автоматически сгенерированный файл spec_helper.rb, вы увидите что-то вроде этого:

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'

Добавьте строку require 'capybara/rails' после этих строк, чтобы она выглядела следующим образом:

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rails' #######

(вам не нужны хэши, это было просто для выделения места вставки)

Надеюсь, это поможет вам или кому-то еще...

Ответ 3

Для меня это сработало для капибары -v 3.24

Откройте файл spec_helper.rb. Этот файл можно найти в папке spec вашего приложения.

Найдите строку ниже в файле spec_helper.rb

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)

добавлять

require 'capybara/rails'

просто прямо под

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)

линия

Сохраните и закройте файл

Все это

Надеюсь, это поможет.