Capybara 2.1错误未初始化的常量Rails(NameError)

时间:2013-08-20 00:53:40

标签: rspec ruby-on-rails-3.2 capybara rspec-rails

我刚刚将我的Capybara Gem从版本1升级到2.1.0(最新版)。基于Capybara自述文件,我将以下几行添加到Spork.prefork块中的spec_helper.rb

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)

我是否因为水豚的工作正常而错过了什么?

3 个答案:

答案 0 :(得分:18)

确保首先需要'rspec / rails':

require 'rspec/rails'

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

如果您首先需要'capybara / rails',您将收到该错误。

答案 1 :(得分:9)

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' #######

(你不需要哈希,只是为了突出插入位置)

希望这可以帮助你或其他人......

答案 2 :(得分:0)

这适用于水豚-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__)

保存并关闭文件

仅此而已

我希望这会有所帮助。