2013-08-20 9 views
16

Ich habe gerade aktualisiert mein Capybara Gem von Version 1 bis 2.1.0 (neueste). Basierend auf Capybara Readme, habe ich diese folgenden Zeilen zu meinem spec_helper.rb innen Spork.prefork blockierenCapybara 2.1 Fehler nicht initialisierte Konstante Rails (NameError)

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

Aber, ich habe einen Fehler

/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) 

Habe ich etwas, um Capybara verpassen richtig funktioniert ?

+0

könnte es sein, dass Sie Wache installiert haben und versuchen Sie es mit> rspec in Ihrer Konsole? Das war mein Fall. – Jan

Antwort

16

Stellen Sie sicher, Sie benötigen 'rspec/rails' zuerst:

require 'rspec/rails' 

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

Wenn Sie benötigen 'Capybara/rails' zuerst, werden Sie diesen Fehler erhalten.

+0

danke das ist mein Problem zu lösen – tito11

8

In Ihrer Datei spec_helper.rb kann dieser Fehler durch Hinzufügen der Zeile require 'capybara/rails' oben im Code der Datei verursacht werden.

Stattdessen, wenn Sie nach unten, dass automatisch generierte Halb wegschauen über spec_helper.rb Datei, werden Sie etwas sehen:

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

Fügen Sie die require 'capybara/rails' Linie nach diesen Zeilen so, dass es wie folgt aussieht:

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

(Sie müssen die Hashes nicht, das waren nur die Einfügeort markieren)

Hoffentlich hilft Ihnen das oder jemand anderes da draußen ...

+0

Hinzufügen 'require 'Capybara/rspec'' zu Ihrer' spec_helper.rb' Datei war genug für mich, damit es funktioniert. Ich lese darüber [hier] (https://kolosek.com/rails-capybara-setup/). –