在Ruby on Rails TestCase中启用完整的回溯

Nie*_*rup 19 ruby testing ruby-on-rails ruby-on-rails-3

我运行时只显示一行回溯:

rake test
Run Code Online (Sandbox Code Playgroud)

输出:

...

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'
Run Code Online (Sandbox Code Playgroud)

...

我需要更多的回溯信息.我试过了

  • rake test --trace

  • Rails.backtrace_cleaner.remove_silencers! 在config/initializers/backtrace_silencers.rb中

  • 设置全局$ DEBUG = true

它不起作用.

我怎么能打开它?

小智 32

BACKTRACE=blegga rake test

BACKTRACE=blegga rails test # rails 5+
Run Code Online (Sandbox Code Playgroud)

--trace如果您需要与rake相关的日志,请附加.

  • 对于那些将来看到这一点并想知道他们是否真的必须使用字符串“blegga”的人来说,不,你也可以做类似“BACKTRACE=1”的事情:) (3认同)
  • 这看起来像是随机添加的东西,但它确实有效!官方文件在哪里? (2认同)

Sam*_* P. 5

现在你可以运行:

rails test --backtrace
Run Code Online (Sandbox Code Playgroud)