现在,如果我使用 rake spec
运行我的测试套件,我收到一个错误:
1) SegmentsController GET 'index' should work
Failure/Error: get 'index'
undefined method `locale' for #
# ./spec/controllers/segments_controller_spec.rb:14:
in `block (3 levels) in '
这是正常的,因为我有一个错误:)
问题是跟踪不是很有帮助 . 我知道它在 segments_controller_spec.rb
,第14行打破了,但这只是我称之为测试的地方:
### segments_controller_spec.rb:14
get 'index'
我更喜欢实际的断行和完整的跟踪,而不是spec文件夹中的部分 .
使用 --trace
运行没有帮助 .
6 回答
您必须使用
-b
选项运行rspec才能看到完整的回溯另一种(更简单的)替代方法是编辑
.rspec
文件,并添加backtrace
选项 . 它应该看起来像这样:这将给你完整的回溯 . 希望这可以帮助 .
这也有效:
另一种方法是清除
spec_helper.rb
中的所有回溯排除模式 . 我最喜欢这个解决方案,因为我能够将所有RSpec设置保存在一个地方,并在.travis.yml
中摆脱.rspec file
或显式--backtrace
.所有其他方法都失败的另一个选择是添加一个救援块并打印出堆栈尝试或在那里添加一个绑定的pry语句并使用
show-stack
.我不知道如何在rspec中显示控制器错误 . 有时会出现,但我不知道是什么条件导致它出现 . 以下是一种快速查看错误的方法:
打开另一个终端会话并运行:
然后返回终端会话并运行出现错误的规范:
回到日志的尾部,你应该看到错误,希望没有太多其他的东西围绕它(因为你自己运行失败的测试) .