rspec テストのデバッグに Rubymine をよく使用します。最近、Rubymine 7.0.2 (ビルド RM-139.800) にアップグレードしましたが、rspec テストをデバッグしようとするとエラーが発生します。Rubymine 6.3 にロールバックしようとしましたが、問題が解決しません。環境の変更によって問題が発生しましたが、何が変わったのかわかりません。
エラーは次のとおりです。
Fast Debugger (ruby-debug-ide 0.4.24, debase 0.1.1) listens on 127.0.0.1:49882
/Users/rubyminepain/code/websites/somerepo/spec/lib/bots_spec.rb:1:in `<top (required)>': uninitialized constant Bots (NameError)
from /Users/rubyminepain/.rvm/gems/ruby-2.1.2/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `load'
from /Users/rubyminepain/.rvm/gems/ruby-2.1.2/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `block in load_spec_files'
from /Users/rubyminepain/.rvm/gems/ruby-2.1.2/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `each'
from /Users/rubyminepain/.rvm/gems/ruby-2.1.2/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `load_spec_files'
from /Users/rubyminepain/.rvm/gems/ruby-2.1.2/gems/rspec-core-2.14.8/lib/rspec/core/command_line.rb:22:in `run'
from /Users/rubyminepain/.rvm/gems/ruby-2.1.2/gems/rspec-core-2.14.8/lib/rspec/core/runner.rb:80:in `run'
from /Users/rubyminepain/.rvm/gems/ruby-2.1.2/gems/rspec-core-2.14.8/lib/rspec/core/runner.rb:17:in `block in autorun'
rspec-rails (2.14.2) rspec-core (2.14.8) と ruby-debug-ide (0.4.24) & debase (0.1.1) を使用しています。
rspec spec/lib/bots_spec.rb などの端末から仕様を実行すると、正常に動作します。エラーが発生するのは、Rubymine で「実行仕様 'bots_spec' をデバッグ」しようとしたときだけです。
上記の gem の古いバージョンを使用してみましたが、まだ問題があります。任意の提案をいただければ幸いです。
アップデート:
require_relative '../spec_helper'
仕様の先頭に追加すると、問題が修正されます。.rspec 構成ファイルには既に--require spec_helper
. スペック ヘルパーは、標準のスペック フォルダーの場所にあります。この require_relative が必要な理由について混乱しています。rspec を使用している他の Rails プロジェクトでは、これは必要ありません。相対的な要求については、https: //stackoverflow.com/a/5045884/880381 で説明されています。私のすべての仕様に require_relative を追加したくないので、なぜそれが必要なのかについてもっと理解したいと思っています。