3

Rspec はしばらくの間正常に動作していましたが、rspec テストを実行しているときに突然この問題が発生しました。

/Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:437:in `require': no such file to load -- rspec/instafail (LoadError)
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:437:in `block in requires='
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:435:in `map'
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:435:in `requires='
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/configuration_options.rb:20:in `block in configure'
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/configuration_options.rb:19:in `each'
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/configuration_options.rb:19:in `configure'
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:21:in `run'
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:66:in `rescue in run'
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:62:in `run'
from /Users/joseph/.rvm/gems/ruby-1.9.2-p180/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `block in autorun'

私は通常、自分のプロジェクトを 2 回チェックアウトします (つまり、git clone を別のディレクトリに 2 回実行します)。何らかの理由で、同じバージョンのコードを使用している場合でも、rspec はチェックアウトの 1 つでのみこの問題に遭遇し、他のチェックアウトでは発生しませんでした。最終的に別のクローンを作成することで問題を回避しました。この問題は何らかの理由で再び発生しました。問題を回避するためにクローンを作成し続ける必要はありません。根本的な原因は何か知っている人はいますか?

4

1 に答える 1

2

問題は、rspec-instafail のような gem が開発用 gem としてグループ化されていたことです。過去のある時点で、「bundle install --without development」を実行したことがありますが、その後のバンドル インストールはそのオプションで自動的に行われるようです。その結果、それらの宝石は私の $LOAD_PATH にありませんでした。

それを修正するために、「bundle install --without asdf」を実行しました。「asdf」グループがないため、すべての gem がインストールされました。これらのグループを再度追加するためのより適切なオプションがおそらくありますが、これは私にとってはうまくいきました。

于 2012-11-20T03:31:48.053 に答える