我一直在使用内置的 OSX 'say' 命令来表示长时间运行测试的结束。这既简单又方便。
我想让它说出结果的最后一行,上面写着“6 个测试,18 个断言,0 个失败,0 个错误”,但仍然保持正在进行的输出。任何想法如何做到这一点?
我试过了:
ruby overlay_test.rb | tail -n 1 | say
但这不会在测试结果发生时输出。
使它只说“0失败,0错误”行的最后两部分的奖励积分。
我一直在使用内置的 OSX 'say' 命令来表示长时间运行测试的结束。这既简单又方便。
我想让它说出结果的最后一行,上面写着“6 个测试,18 个断言,0 个失败,0 个错误”,但仍然保持正在进行的输出。任何想法如何做到这一点?
我试过了:
ruby overlay_test.rb | tail -n 1 | say
但这不会在测试结果发生时输出。
使它只说“0失败,0错误”行的最后两部分的奖励积分。
您可以使用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)
谢谢!
tee
正是我所需要的。尽管最终获胜的命令是:
ruby overlay_test.rb | tee >(tail -n 1 |sed -e 's/.*assertions, //' | say)
因为我想看到的不仅仅是测试运行时的最后一行。