Вывод (положить, напечатать) в Rails Unit Tests - PullRequest
19 голосов
/ 28 октября 2009

Почему команды, такие как put и print, не отображаются в консоли при запуске ActiveSupport :: TestCase tests?

Очень затрудняет отладку, если я не могу вывести некоторые проверки несколькими способами.

Спасибо!

Ответы [ 4 ]

28 голосов
/ 29 октября 2009

Вы можете использовать регистратор рельсов, чтобы увидеть ваш вывод:

Rails::logger.debug "Interesting stuff"

Запустите tail -f log/test.log в командной строке (из корня проекта на отдельной вкладке или в окне терминала), чтобы увидеть результаты.

7 голосов
/ 29 мая 2013

Я только что боролся с этим под рельсами (3.2). Я не знаю, как вещи изменились между версиями, но ответы на самом деле не отвечают на вопрос. Скорее используя

$stdout.puts msg

выводит на консоль вместе с другими сообщениями консоли при выполнении отдельных тестов.

3 голосов
/ 01 сентября 2012

Я использую ставит все время в тесты, когда я быстро взламываю отладку одного теста. Поэтому я не использую тест rake: *, а скорее запускаю отдельный тест, и вывод отображается.

ruby -Itest test/unit/user/context_test.rb
0 голосов
/ 25 сентября 2013

Вы можете использовать путы в отдельном тесте, например:

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

Это будет выглядеть примерно так в окне вашего терминала при выполнении тестов

Начато E ... EEE

Великобритания .E

Завершено за 2,778886 секунд.

(где @object.name == "United Kingdom" в данном случае)

Это довольно грубый метод, но очень быстрый для простой отладки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...