2013-08-20 54 views
16

我剛將我的Capybara Gem從版本1升級到2.1.0(最新版本)。基於水豚的自述,我添加了這個以下行我裏面Spork.prefork spec_helper.rb阻止水豚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的/ Rails的第一:

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

相關問題