1

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 を追加したくないので、なぜそれが必要なのかについてもっと理解したいと思っています。

4

1 に答える 1

1

おそらく名前の問題です。エラー ログに記載されているファイルの最初の行を確認し、定数を単数形の名前にbots_spec.rb置き換えてください。 モデル名は常に単数形で呼び出す必要があります。BotsBot

于 2015-01-20T12:58:32.113 に答える