有ruby Unit :: Test说出测试结果

时间:2009-12-17 22:11:26

标签: ruby unit-testing bash command-line testunit

我一直在使用内置的OSX“say”命令来表示长时间运行测试的结束。它简单方便。

我想让它说出结果的最后一行,即“6次测试,18次断言,0次失败,0次错误”,但仍保持正在进行的输出。任何想法如何做到这一点?

我试过了:

ruby overlay_test.rb | tail -n 1 | say

但是这并没有输出测试结果。

奖励积分让它只说“0次失败,0次失误”这两行的最后两部分。

2 个答案:

答案 0 :(得分:4)

您可以使用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)

答案 1 :(得分:2)

谢谢!

tee正是我所需要的。虽然获胜的命令是:

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

因为我想在运行时看到的不仅仅是测试的最后一行。