我在使用 rails 应用程序中捆绑的 cucumber 和 rspec gem 时遇到问题。
这是我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 现在是 version 2.0.1
,绝对不酷。
事实上,这在运行规范时会导致各种错误,我花了一段时间才弄清楚它们是旧的 rspec 错误,很久以前就修复了。
我可以强制捆绑器使用最新的 gem:
group :test do
gem 'rspec-rails', '>= 2.12.0'
gem 'cucumber-rails'
end
但我不高兴,因为我不明白:
- 如果我一开始做错了什么
- 如果我应用的修复程序会导致其他问题
- 如果有办法预测这种行为
有什么见解吗?