19

我刚刚将我的 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)

为了水豚正常工作,我错过了什么吗?

4

3 回答 3

18

确保首先需要“rspec/rails”:

require 'rspec/rails'

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

如果你首先需要'capybara/rails',你会得到那个错误。

于 2013-09-18T21:53:20.563 回答
11

在您的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' #######

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

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

于 2014-04-04T00:12:54.027 回答
0

这对我来说适用于 capybara -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__)

线

保存并关闭文件

就这样

我希望这有帮助。

于 2019-06-16T14:29:47.923 回答