将ruby诅咒重定向到/dev/null
我正在尝试为使用Ruby的Curses库的应用程序编写规范。诅咒显然垄断了终端屏幕,所以我尝试将rspec的输出重定向到一个文件。这在很大程度上是可行的,但是我的一些失败的规范缺少信息,我认为RSpec正在将它的一些输出打印到$stdout将ruby诅咒重定向到/dev/null,ruby,rspec,curses,Ruby,Rspec,Curses,我正在尝试为使用Ruby的Curses库的应用程序编写规范。诅咒显然垄断了终端屏幕,所以我尝试将rspec的输出重定向到一个文件。这在很大程度上是可行的,但是我的一些失败的规范缺少信息,我认为RSpec正在将它的一些输出打印到$stdout 我尝试过将Curses库配置为不打印到屏幕上,但没有效果。有没有办法禁用Curses输出以便测试可以正常运行?尝试,当您决定恢复Curses输出时,调用Curses。refresh我有一个配置标志,指定是否执行Curses输出。对于单元测试,我禁用curse
我尝试过将Curses库配置为不打印到屏幕上,但没有效果。有没有办法禁用Curses输出以便测试可以正常运行?尝试,当您决定恢复Curses输出时,调用Curses。refresh我有一个配置标志,指定是否执行Curses输出。对于单元测试,我禁用curses输出 此外,在运行时,我测试stdout和stderr是否为tty;如果没有,它们将被重定向到文件,我不希望输出诅咒。它看起来像这样:
def do_curses_output?
$stdin.isatty && $stdout.isatty && want_curses_output
end
def foo
if do_curses_output?
# ... do the curses stuff
end
end
-Keith尝试了这一点,虽然rspec格式已经完全关闭,但确实有所帮助。你知道怎么重置吗?似乎断线没有得到尊重。