rails app中未初始化的常量Capybara(NameError)

时间:2013-10-17 20:53:04

标签: ruby-on-rails ruby-on-rails-4 railstutorial.org

  

c:/mowes/www/rails_projects/sample_app/spec/spec_helper.rb:4:在`block中   in':未初始化的常数Capybara(NameError)

规格/ spec_helper.rb

# This file is copied to spec/ when you run 'rails generate rspec:install'

RSpec.configure do |config|
  config.include Capybara::DSL
end

我的Gemfile中有gem 'capybara', '2.1.0'因此我不知道发生了什么。

6 个答案:

答案 0 :(得分:18)

您必须将config.include Capybara::DSL添加到rails_helper.rb,而不是spec_helper.rb。它非常适合我!

答案 1 :(得分:5)

我认为这可行。尝试在spec_helper.rb

中添加这些行
RSpec.configure do |config|
 config.fixture_path = "#{::Rails.root}/spec/fixtures"
 config.use_transactional_fixtures = true
 config.infer_base_class_for_anonymous_controllers = false
 config.order = "random" 
 config.include Capybara::DSL
end

答案 2 :(得分:4)

您是否已经运行了捆绑安装?你有没有添加

require 'capybara/rails' 

在spec_helper.rb

如果您使用的是Capybara,您可能需要按照here的说明进行操作。

答案 3 :(得分:1)

我添加了config.include Capybara::DSL to rails_helper.rb,而不是spec_helper.rb。它真的有帮助。

答案 4 :(得分:1)

如果您在规范中看到此错误,尽管在spec_helper.rb中导入了Capybara,将.rspec--require spec_helper添加到根目录应该可以解决问题:

enter image description here

答案 5 :(得分:0)

我也反驳过这个问题。我正在学习MOOC,测试文件是从另一个地方复制的。因为.repec是隐藏文件,所以当我复制时,这个文件没有被复制。 我使用Command + shift +。显示文件并将其复制到项目根目录,问题就解决了。