2012-01-21 25 views
1

这可能是一个简单的问题,尽管我在RSpec文档中找不到任何东西。在运行RSpec时将程序的输出重定向到其他地方

当运行RSpec的我的小红宝石(未Rails的!)程序,RSpec的输出是搞砸了我的程序的输出(例如自定义警告消息我介绍(warn())或通过puts进度信息,$stdout)。

如何将我的程序输出重定向到一个文件(或/dev/null)?

我必须每次嘲笑$stdout,putswarn吗?因为我对测试的输出不感兴趣,所以这没有帮助。

我打电话RSpec的与rake和以下选项:

--require spec_helper.rb \ 
--format html --out log/rspec_report.html \ 
--format documentation --out log/rspec_report.txt \ 
--format progress 

红宝石1.9.3p0(2011-10-30修订33570)x86_64的Linux的]
rspec的2.8.0
rake 0.9.2.2

回答

1

您可以将自定义消息打印到$ stderr而不是$ stdout。 之后,你就可以重定向错误流,如:

spec 2> /dev/null 
+0

但这重定向我的程序的标准输出(和警告消息),我需要我的计划之内做的,对不对?或者有没有办法在RSpec中运行时只重定向它? –

+0

1)对。 2)不幸的是,我不知道。 – taro

相关问题