3

組み込みの OSX 'say' コマンドを使用して、長時間実行されているテストの終了を知らせてきました。簡単で便利です。

「6回のテスト、18回のアサーション、0回の失敗、0回のエラー」という結果の最後の行を話させたいと思いますが、それでも進行中の出力を保持します。これを行う方法はありますか?

私はもう試した:

ruby overlay_test.rb | tail -n 1 | say

しかし、それはテスト結果をそのまま出力しません。

行の最後の 2 つの部分だけを「0 の失敗、0 のエラー」と言うようにするためのボーナス ポイント。

4

2 に答える 2

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)
于 2009-12-17T22:28:21.760 に答える
2

ありがとう!

teeまさに私が必要としていたものです。勝利のコマンドは次のとおりでしたが、

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

実行時にテストの最後の行だけでなく、それ以上のものを見たかったからです。

于 2009-12-17T23:06:25.690 に答える