我经常使用 Rubymine 来调试我的 rspec 测试。我最近升级到 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 添加到我的所有规范中,所以仍然希望更多地了解为什么需要它。