我跑步时只显示一行回溯:
rake test
输出:
...
ERROR should get search for keywords (1.93s)
NoMethodError: undefined method `features' for #<Transcript:0x00000006243780>
/usr/lib/ruby/gems/1.9.1/gems/activemodel-3.1.0/lib/active_model/attribute_methods.rb:385:in `method_missing'
...
我需要更多回溯信息。 我试过了
rake test --trace
Rails.backtrace_cleaner.remove_silencers!
设置全局$ DEBUG = true
它不起作用。
如何开启?
答案 0 :(得分:26)
BACKTRACE=blegga rake test
BACKTRACE=blegga rails test # rails 5+
如果您需要与rake相关的日志,请附加--trace
。
答案 1 :(得分:2)
终于弄明白了。问题在于Rails 3.1中包含'turn'宝石,或者实际上是转向v0.8.2,这是默认Gemfile所要求的:
group :test do
# Pretty printed test output
gem 'turn', '0.8.2', require: false
end
转向v0.8.2不包含完整的回溯,因此您必须升级才能获得它。我通过将我的Gemfile中的上述内容更改为:
来实现group :test do
# Pretty printed test output
gem 'turn', require: false
gem 'minitest'
end
(我不得不添加minitest,否则会抛出一个RuntimeError,说“MiniTest v1.6.0已经过时了。”)
然后我跑了bundle update turn
并得到了最新的版本(截至本文撰写时为0.9.2)。这给了完整的回溯。
答案 2 :(得分:1)
现在您可以运行:
rails test --backtrace