单元测试与完整堆栈跟踪

11

这个问题看起来很愚蠢,但我无法在任何地方找到答案。我正在使用带有Test::Unit的Rails 3.1。

当测试失败时,我只能看到堆栈的顶部,例如:

ERROR creating a message sends emails (1.35s) 
          NoMethodError: undefined method `project' for nil:NilClass
      /Users/ghempton/.rvm/gems/ruby-1.9.2-p180@gt/gems/activesupport-3.1.3/lib/active_support/whiny_nil.rb:48:in `method_missing'

我该如何查看完整的堆栈跟踪信息?

3个回答

27

请取消注释config/initializers/backtrace_silencers.rb中以下行:

Rails.backtrace_cleaner.remove_silencers!

有趣的是,我们已经使用这个有用的选项很长时间了,我甚至都忘记它的存在了! :-)


它对我有用,当不使用特定的 gem(如 turn)时,可能是一个更一般性的答案。另外,我在这里还很新,需要一些帮助。 :-) - Kevin Triplett
已经给出了骨架。我认为rails new会自动添加turn。 - ghempton
感谢您提供的提示和关于 turn 的建议 -- 您是正确的,Rails 似乎会将其添加到新项目中。 - Kevin Triplett
这个提示对我的缺少初始化器的Rails 2.3项目起到了作用,谢谢。 - Andrew France
这对我当时实际上没有起作用... 我现在已经完全转向使用rspec了。 - ghempton

3

我最终通过更新 turn gem 包来解决这个问题,该包负责格式化测试输出。


0

我最终使用了minitest-reporters宝石。

Rails.backtrace_cleaner.remove_silencers!

对我的集成测试没有起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接