Ruby on rails 3 新rails 3.2应用程序中的rspec和cucumber gems捆绑版本

Ruby on rails 3 新rails 3.2应用程序中的rspec和cucumber gems捆绑版本,ruby-on-rails-3,rspec,cucumber,bundler,Ruby On Rails 3,Rspec,Cucumber,Bundler,我在rails应用程序中遇到了cucumber和rspec gems捆绑的问题 这就是我的Gemfile在添加了RSpec支持的新Rails 3.2.11应用程序中的样子: source 'https://rubygems.org' gem 'rails', '3.2.11' gem 'sqlite3' gem 'jquery-rails' group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~

我在rails应用程序中遇到了cucumber和rspec gems捆绑的问题

这就是我的
Gemfile
在添加了RSpec支持的新Rails 3.2.11应用程序中的样子:

source 'https://rubygems.org'
gem 'rails', '3.2.11'
gem 'sqlite3'
gem 'jquery-rails'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

group :test do
  gem 'rspec-rails'
end
运行
bundle
后,
Gemfile.lock
报告正在使用
rspec 2.12.2
(截至本文撰写之时,gem的最新版本)

但是我也想使用cucumber,所以在修改
Gemfile
之后,我运行
bundle update
,如下所示:

group :test do
  gem 'rspec-rails'
  gem 'cucumber-rails'
end
令我惊讶的是,捆绑的rspec现在是版本
2.0.1
,绝对不酷。

事实上,这在运行规范时导致了各种各样的错误,我花了一段时间才发现它们是很久以前修复的旧rspec错误

我可以强制bundler使用最新的gem:

group :test do
  gem 'rspec-rails', '>= 2.12.0'
  gem 'cucumber-rails'
end
但我不开心,因为我不明白:

  • 如果我一开始做错了什么
  • 如果我应用的修复会导致其他问题
  • 如果有办法预测这种行为
  • 有什么见解吗?

    根据,cucumber rails依赖于“rspec rails”,“2.10.1”(意思是>=2.10.1和<2.11)。如果任何其他上游依赖依赖依赖于rspec<2.10.1或>=2.11的版本,bundler应该会引发错误,因此我无法理解这是如何发生的


    另外,您应该在
    :development
    :test
    组(per)中都包含rspec rails。

    我不在cucumber rails/master上,我使用的是最新的gem,即1.3.0。不过,它的gempec上写着“rspec-rails”,“2.7.0”,所以是的,bundler为什么不抱怨呢。我在一个全新的rvm环境(mri 1.9.3-p327和专用的gemset)中,在一个:测试和:开发组中使用cucumber rails和rspec rails,用另一个新的rails应用程序重现了这个问题。Bundler安装cucumber rails 1.3.0和rspec 2.0.1。。。有什么我可以上传的可以帮忙的吗?谢谢