2009-12-17 111 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) 

因爲我想在運行時看到的不僅僅是最後一行測試。