我一直在使用内置的OSX“say”命令来表示长时间运行测试的结束。它简单方便。
我想让它说出结果的最后一行,即“6次测试,18次断言,0次失败,0次错误”,但仍保持正在进行的输出。任何想法如何做到这一点?
我试过了:
ruby overlay_test.rb | tail -n 1 | say
但是这并没有输出测试结果。
奖励积分让它只说“0次失败,0次失误”这两行的最后两部分。
答案 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)
因为我想在运行时看到的不仅仅是测试的最后一行。