0

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 は version2.0.1になりました。

実際、spec の実行時にこれがあらゆる種類のエラーを引き起こしていましたが、それらが古い rspec エラーであり、ずっと前に修正されたものであることがわかるまでにしばらく時間がかかりました。

バンドラーに最新の gem を強制的に使用させることができます。

group :test do
  gem 'rspec-rails', '>= 2.12.0'
  gem 'cucumber-rails'
end

しかし、私は理解できないので、私は不幸です:

  1. もし私が最初から何か間違ったことをしたら
  2. 私が適用した修正が今後他の問題を引き起こすかどうか
  3. この行動を予測する方法があれば

洞察はありますか?

4

1 に答える 1

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 のバージョンに依存している場合、バンドラーはエラーを発生させる必要があるため、これがどのように発生したのか理解できません。

余談ですが、:development:testグループの両方に rspec-rails を含める必要があります ( https://github.com/rspec/rspec-rails#configureに従って)。

于 2013-02-04T15:22:33.880 に答える