У ruby ​​Unit :: Test озвучить результаты теста - PullRequest
3 голосов
/ 18 декабря 2009

Я использовал встроенную OSX команду «say» для оповещения об окончании длительных тестов. Это легко и удобно.

Я бы хотел, чтобы это говорило в последней строке результатов, где указано «6 тестов, 18 утверждений, 0 сбоев, 0 ошибок», но при этом сохраняется текущий результат. Есть идеи как это сделать?

Я пробовал:

ruby overlay_test.rb | tail -n 1 | say

Но это не выводит результаты тестов, как они происходят.

Бонусные баллы за то, что он говорит только две последние части строки "0 сбоев, 0 ошибок".

Ответы [ 2 ]

4 голосов
/ 18 декабря 2009

Вы можете использовать tee для прямого вывода в несколько файлов / процессов (здесь say и STDOUT):

ruby overlay_test.rb | tail -n 1 | tee >(say)

Для бонуса избавьтесь от того, что вам не нужно сsed:

ruby overlay_test.rb | tail -n 1 | sed -e 's/.*assertions, //' | tee >(say)
2 голосов
/ 18 декабря 2009

Спасибо!

tee как раз то, что мне нужно. Хотя победная команда оказалась:

ruby overlay_test.rb | tee >(tail -n 1 |sed -e 's/.*assertions, //' |  say)

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

...