在Rails单元测试中输出(放置,打印)

时间:2009-10-28 19:57:55

标签: ruby-on-rails unit-testing

运行ActiveSupport :: TestCase测试时,如何在控制台中显示诸如puts和print之类的命令?

如果我不能通过几种方法输出某些检查,那么很难调试。

谢谢!

4 个答案:

答案 0 :(得分:28)

您可以使用rails logger查看输出:

Rails::logger.debug "Interesting stuff"

在命令行上运行tail -f log/test.log(从单独的“终端”选项卡或窗口中的项目根目录)以查看结果。

答案 1 :(得分:7)

我刚刚在rails(3.2)下苦苦挣扎。我不知道版本之间的情况如何变化,但答案实际上并没有回答这个问题。而是使用

$stdout.puts msg

在运行单个测试时输出到控制台以及其他控制台消息。

答案 2 :(得分:3)

当我快速黑客调试单个测试时,我一直在测试中使用put。所以我不使用rake测试:*,而是运行单独测试,输出显示。

ruby -Itest test/unit/user/context_test.rb

答案 3 :(得分:0)

您可以在单个测试中使用puts,如下所示:

puts "\n\n #{@object.name}"

当测试运行时,在终端窗口中看起来如下所示

  

开始E ... EEE

     

英国.E

     

在2.787886秒完成。

(在这种情况下@object.name == "United Kingdom"

这是一个非常粗略的方法,但很容易进行简单的调试