运行ActiveSupport :: TestCase测试时,如何在控制台中显示诸如puts和print之类的命令?
如果我不能通过几种方法输出某些检查,那么很难调试。
谢谢!
答案 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"
)
这是一个非常粗略的方法,但很容易进行简单的调试