我遇到了捆绑在rails应用程序中的黄瓜和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)。
但我也想使用黄瓜,所以在修改bundle update
之后运行Gemfile
就像这样:
group :test do
gem 'rspec-rails'
gem 'cucumber-rails'
end
令我惊讶的是,捆绑的rspec现在是版本2.0.1
,绝对不酷。
事实上,这在运行规范时会造成各种错误,我花了一段时间才发现它们是旧的rspec错误,很久以前就修复了。
我可以强制捆绑商使用最新的宝石:
group :test do
gem 'rspec-rails', '>= 2.12.0'
gem 'cucumber-rails'
end
但我不高兴,因为我不明白:
任何见解?
答案 0 :(得分:0)
根据https://github.com/cucumber/cucumber-rails/blob/master/cucumber-rails.gemspec#L22,cucumber-rails取决于'rspec-rails','〜> 2.10.1'(表示> = 2.10.1和< 2.11)。如果任何其他上游依赖依赖于rspec的版本< 2.10.1或> = 2.11,bundler应该引发错误,所以我无法理解这是怎么发生的。
另外,您应该在:development
和:test
组中包含rspec-rails(每https://github.com/rspec/rspec-rails#configure个)。