开发者

Outputting (puts, print) in Rails Unit Tests

开发者 https://www.devze.com 2022-12-10 04:35 出处:网络
How come commands like puts and print don\'t show up in the console when running ActiveSupport::TestCase tests?

How come commands like puts and print don't show up in the console when running ActiveSupport::TestCase tests?

Makes it very hard to debug开发者_StackOverflow社区 if I can't outputs some inspections in a couple of methods.

Thanks!


You can use the rails logger to see your output:

Rails::logger.debug "Interesting stuff"

Run tail -f log/test.log on the command line (from the project's root in a separate Terminal tab or window) to see the results.


I've just been struggling with this under rails (3.2). I don't know how things have changed between versions but the answers don't actually answer the question. Rather using

$stdout.puts msg

outputs to the console along with the other console messages when running individual tests.


I use puts all the time in tests when I'm quickly hacking debugging a single test. So I don't use rake test:*, rather run the individual test and the output shows up.

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


You can use puts in an individual test as follows eg:

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

This will look something like as follows in your terminal window as the tests run

Started E...EEE

United Kingdom .E

Finished in 2.787886 seconds.

(where @object.name == "United Kingdom" in this case)

It's quite a crude method but very quick for simple debugging

0

精彩评论

暂无评论...
验证码 换一张
取 消