1

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

4

1 回答 1

1

这可能只是一个命名问题,检查错误日志中提到的文件中的第一行bots_spec.rb并将常量替换Bots为单数名称Bot
模型名称应始终以单数形式调用

于 2015-01-20T12:58:32.113 回答