2013-08-20 3 views
16

Я только что обновил свой Capybara Gem с версии 1 до 2.1.0 (последний). На основе Capybara Readme, я добавил это следующие строки в моем spec_helper.rb внутри Spork.prefork блокCapybara 2.1 Ошибка неинициализированной константы Rails (NameError)

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) 

ли я что-то пропустил в порядке водосвинки работать правильно ?

+0

Возможно, у вас установлен защитник и попробуйте использовать> rspec в консоли? Это был мой случай. – Jan

ответ

16

Убедитесь, что требуется «RSpec/Рельсы» первый:

require 'rspec/rails' 

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

Если вам требуется «Капибара/рельсы» первым, вы получите эту ошибку.

+0

спасибо, что решила моя проблема – tito11

8

В файле 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' ####### 

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

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

+0

Добавление 'require 'capybara/rspec'' в ваш файл' spec_helper.rb' было достаточно для меня, чтобы он работал. Я читал об этом [здесь] (https://kolosek.com/rails-capybara-setup/). –

Смежные вопросы