升级Shoulda gem会导致RSpec和Ruby-on-Rails出现错误

升级Shoulda gem会导致RSpec和Ruby-on-Rails出现错误,ruby-on-rails,rspec,rspec-rails,shoulda,Ruby On Rails,Rspec,Rspec Rails,Shoulda,在我将shoulda gem升级到3.4.0之后,我的测试将不再运行 背景: Ruby 1.9.3-p392 轨道3.2.12 Rspec 2.13.0 Mac OS X 10.8.3 当我设置Gemfile并运行bundle exec rspec spec时,我收到以下错误: #Gemfile #1 group :test do gem 'rspec-rails', '2.13.0' gem 'shoulda', '3.4.0' end 错误:gems/activesupport

在我将shoulda gem升级到3.4.0之后,我的测试将不再运行

背景:

  • Ruby 1.9.3-p392
  • 轨道3.2.12
  • Rspec 2.13.0 Mac
  • OS X 10.8.3
当我设置Gemfile并运行
bundle exec rspec spec
时,我收到以下错误:

#Gemfile #1
group :test do
  gem 'rspec-rails', '2.13.0'
  gem 'shoulda', '3.4.0'
end
错误:
gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:251:在'require'中:无法加载这样的文件--rspec(LoadError)

错误:
gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:251:在'require'中:无法加载这样的文件--rspec(LoadError)

错误:
/gems/activesupport-3.2.13/lib/active\u support/dependencies.rb:251:在'require'中:无法加载这样的文件--rspec/rails(LoadError)

这些是唯一有效的Gemfile版本,但它们似乎不是正确的设置:

#Gemfile #4
group :test do
  gem 'factory_girl_rails', '4.2.1'
  gem 'rspec', '2.13.0'
  gem 'rspec-rails', '2.13.0'
  gem 'shoulda-matchers', '1.5.0'
end

#Gemfile #5
group :test do
  gem 'factory_girl_rails', '4.2.1'
  gem 'rspec', '2.13.0'
  gem 'rspec-rails', '2.13.0'
  gem 'shoulda', '3.4.0'
end
完整错误跟踪示例(典型):

/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u support/dependencies.rb:251:in'require':无法加载这样的文件--rspec(LoadError)
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u support/dependencies.rb:251:in'block in require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:236:in'load\u-dependency'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:251:in'require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/shoulda-matchers-1.5.0/lib/shoulda/matchers/integrations/rspec.rb:2:in`'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:251:in'require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u support/dependencies.rb:251:in'block in require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:236:in'load\u-dependency'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:251:in'require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/shoulda-matchers-1.5.0/lib/shoulda/matchers.rb:5:in`'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:251:in'require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u support/dependencies.rb:251:in'block in require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:236:in'load\u-dependency'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active\u-support/dependencies.rb:251:in'require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/shoulda-matchers-1.5.0/lib/shoulda-matchers.rb:1:in`'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in'require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in'block(2层)in require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in'each'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in'block in require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in'each'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in'require'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler.rb:132:in'require'
from/Users/wrburges/dev/jbrb/league server/config/application.rb:8:in`'
from/Users/wrburges/dev/jbrb/league server/config/environment.rb:2:in'require'
来自/Users/wrburges/dev/jbrb/league server/config/environment.rb:2:in`'
from/Users/wrburges/dev/jbrb/league server/spec/spec_helper.rb:3:in'require'
from/Users/wrburges/dev/jbrb/league server/spec/spec_helper.rb:3:in`'
from/Users/wrburges/dev/jbrb/league server/spec/config/initializers/app_settings_spec.rb:1:in'require_relative'
来自/Users/wrburges/dev/jbrb/league server/spec/config/initializers/app_settings_spec.rb:1:in`'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in'load'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in'block in load_spec_files'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in'each'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:在“加载规范文件”中
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/command_-line.rb:22:in'run'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in'run'
来自/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in'block in autorun'
将shoulda matchers升级到1.5.4,并将gem组更改为 开发和测试


在1.5.X到1.5.4之间存在回归。我也遇到了同样的问题。

如果您回滚所做的更改,它是否会恢复工作?是的,我可以反复使用相同的“通过/失败”选项
#Gemfile #3 
group :test do
  gem 'factory_girl_rails', '4.2.1' 
  gem 'rspec', '2.13.0'
  gem 'shoulda', '3.4.0'
end
#Gemfile #4
group :test do
  gem 'factory_girl_rails', '4.2.1'
  gem 'rspec', '2.13.0'
  gem 'rspec-rails', '2.13.0'
  gem 'shoulda-matchers', '1.5.0'
end

#Gemfile #5
group :test do
  gem 'factory_girl_rails', '4.2.1'
  gem 'rspec', '2.13.0'
  gem 'rspec-rails', '2.13.0'
  gem 'shoulda', '3.4.0'
end
/Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- rspec (LoadError)
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/shoulda-matchers-1.5.0/lib/shoulda/matchers/integrations/rspec.rb:2:in `<top (required)>'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/shoulda-matchers-1.5.0/lib/shoulda/matchers.rb:5:in `<top (required)>'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/shoulda-matchers-1.5.0/lib/shoulda-matchers.rb:1:in `<top (required)>'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `each'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `block in require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `each'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `require'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/bundler-1.3.4/lib/bundler.rb:132:in `require'
    from /Users/wrburgess/dev/jbrb/league-server/config/application.rb:8:in `<top (required)>'
    from /Users/wrburgess/dev/jbrb/league-server/config/environment.rb:2:in `require'
    from /Users/wrburgess/dev/jbrb/league-server/config/environment.rb:2:in `<top (required)>'
    from /Users/wrburgess/dev/jbrb/league-server/spec/spec_helper.rb:3:in `require'
    from /Users/wrburgess/dev/jbrb/league-server/spec/spec_helper.rb:3:in `<top (required)>'
    from /Users/wrburgess/dev/jbrb/league-server/spec/config/initializers/app_settings_spec.rb:1:in `require_relative'
    from /Users/wrburgess/dev/jbrb/league-server/spec/config/initializers/app_settings_spec.rb:1:in `<top (required)>'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `block in load_spec_files'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `each'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load_spec_files'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:22:in `run'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in `run'
    from /Users/wrburgess/.rvm/gems/ruby-1.9.3-p392@league/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in `block in autorun'