2013-08-20 57 views
16

Tôi vừa nâng cấp Capybara Gem từ phiên bản 1 lên 2.1.0 (mới nhất). Dựa trên Capybara Readme, tôi đã thêm này dòng sau vào spec_helper.rb tôi bên Spork.prefork chặnCapybara 2.1 Lỗi không cố định liên tục Rails (NameError)

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

Nhưng, tôi đã nhận ra lỗi

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

đã tôi nhớ cái gì để Capybara để hoạt động đúng ?

+0

có thể là bạn đã cài đặt bảo vệ và thử sử dụng> rspec trong bảng điều khiển của mình không? Đây là trường hợp của tôi. – Jan

Trả lời

16

Hãy chắc chắn rằng bạn require 'rspec/đường ray' đầu tiên:

require 'rspec/rails' 

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

Nếu bạn require 'Capybara/đường ray' đầu tiên, bạn sẽ nhận được lỗi đó.

+0

nhờ đó giải quyết vấn đề của tôi – tito11

8

Trong tệp spec_helper.rb của bạn, lỗi này có thể là do thêm dòng require 'capybara/rails' ở đầu mã của tệp.

Thay vào đó, nếu bạn nhìn về một nửa chiều xuống tập tin spec_helper.rb tự động tạo ra, bạn sẽ thấy một cái gì đó như thế này:

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

Thêm dòng require 'capybara/rails' sau khi những dòng để nó trông giống như:

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

(bạn không cần băm, đó là những chỉ để làm nổi bật vị trí chèn)

Hy vọng rằng điều này sẽ giúp bạn hoặc người khác ra khỏi đó ...

+0

Thêm 'require 'capybara/rspec'' vào tệp' spec_helper.rb' của bạn đủ cho tôi để làm cho nó hoạt động. Tôi đọc về nó [ở đây] (https://kolosek.com/rails-capybara-setup/). –