困惑 - spec_helper.rb:94:in `<top (required)>': uninitialized constant Shoulda (NameError)
Confused - spec_helper.rb:94:in `<top (required)>': uninitialized constant Shoulda (NameError)
我正在使用 Rails 4 和 Mongoid 4 开发一个项目。我正在尝试设置 Shoulda-matchers(版本 2.8.0),然后 thoughtbot/shoulda-matchers, which points to another README called README for 2.8.0. And I am hoping to use the mongoid-rspec 进行测试。
但是我一直收到spec_helper.rb:94:in '<top (required)>': uninitialized constant Shoulda (NameError)
我在 Gemfile
中添加了这个:在 thoughtbot/shoulda-matchers
之后
group :test do
gem 'shoulda-matchers'
end
我还在 spec_helper.rb
中添加(这是错误的来源)- 在 thoughtbot/shoulda-matchers
之后
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :rspec
with.library :rails
end
end
我试过谷歌搜索但是没有直接的解决方案(或者没有直接的问题)。我在 Gemfile 中添加了 require: false
,在 README for 2.8.0
之后
group :test do
gem 'shoulda-matchers', require: false
end
我在 rails_helper.rb
中添加了 require 'shoulda/matchers'
。我的'requires'订单是这样的:
require 'spec_helper'
require 'rspec/rails'
require 'shoulda/matchers'
默认情况下,require 'rspec/rails' 低于 require 'spec_helper'。根据 github 页面上提供的 README,我应该将 shoulda\matcher
放在 'rspec/rails' 下方。我也曾尝试将 require 'shoulda/matchers'
放在 require 'spec_helper'
之上,但没有成功。
我的版本:
Rails 4.2.1
Ruby 2.2.1
Mongoid ~ 4.0.0
rspec-rails ~ 3.0
mongoid-rspec ~ 2.1.0
shoulda-matchers 2.8.0
非常感谢任何帮助。
根据您提供的link:
注意:新的配置语法在 public 版本中尚不可用——有关当前安装说明,请参阅 2.8.0 的自述文件。
该注释来自 master 分支。当前版本 (2.8.0) 有一组不同的文档。令人困惑,我知道。
只需从 spec/spec_helper.rb
中删除该配置部分,一切都应该再次成为彩虹和独角兽。
只需将这些行插入 spec/spec_helper.rb
:
config.include(Shoulda::Matchers::ActiveModel, type: :model)
config.include(Shoulda::Matchers::ActiveRecord, type: :model)
参考:
https://github.com/thoughtbot/shoulda-matchers#availability-of-matchers-in-various-example-groups
我正在使用 Rails 4 和 Mongoid 4 开发一个项目。我正在尝试设置 Shoulda-matchers(版本 2.8.0),然后 thoughtbot/shoulda-matchers, which points to another README called README for 2.8.0. And I am hoping to use the mongoid-rspec 进行测试。
但是我一直收到spec_helper.rb:94:in '<top (required)>': uninitialized constant Shoulda (NameError)
我在 Gemfile
中添加了这个:在 thoughtbot/shoulda-matchers
group :test do
gem 'shoulda-matchers'
end
我还在 spec_helper.rb
中添加(这是错误的来源)- 在 thoughtbot/shoulda-matchers
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :rspec
with.library :rails
end
end
我试过谷歌搜索但是没有直接的解决方案(或者没有直接的问题)。我在 Gemfile 中添加了 require: false
,在 README for 2.8.0
group :test do
gem 'shoulda-matchers', require: false
end
我在 rails_helper.rb
中添加了 require 'shoulda/matchers'
。我的'requires'订单是这样的:
require 'spec_helper'
require 'rspec/rails'
require 'shoulda/matchers'
默认情况下,require 'rspec/rails' 低于 require 'spec_helper'。根据 github 页面上提供的 README,我应该将 shoulda\matcher
放在 'rspec/rails' 下方。我也曾尝试将 require 'shoulda/matchers'
放在 require 'spec_helper'
之上,但没有成功。
我的版本:
Rails 4.2.1
Ruby 2.2.1
Mongoid ~ 4.0.0
rspec-rails ~ 3.0
mongoid-rspec ~ 2.1.0
shoulda-matchers 2.8.0
非常感谢任何帮助。
根据您提供的link:
注意:新的配置语法在 public 版本中尚不可用——有关当前安装说明,请参阅 2.8.0 的自述文件。
该注释来自 master 分支。当前版本 (2.8.0) 有一组不同的文档。令人困惑,我知道。
只需从 spec/spec_helper.rb
中删除该配置部分,一切都应该再次成为彩虹和独角兽。
只需将这些行插入 spec/spec_helper.rb
:
config.include(Shoulda::Matchers::ActiveModel, type: :model)
config.include(Shoulda::Matchers::ActiveRecord, type: :model)
参考:
https://github.com/thoughtbot/shoulda-matchers#availability-of-matchers-in-various-example-groups