2009-12-17 69 views
3

我一直在使用内置的OSX'say'命令来表示长时间运行测试的结束。这很容易和方便。有红宝石单元::测试说出测试结果

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

我已经试过:

ruby overlay_test.rb | tail -n 1 | say 

但是,当他们发生不输出测试结果。

用于表示该行“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) 
2

谢谢!

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

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

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