RSpec的.如何为管道或重定向输出着色?

Sha*_*oke 5 ruby bdd rspec

在2.0之前的RSpec版本中,我可以将颜色输出管道输出更少或将其重定向到文件.为了做到这一点,我只需要将RSPEC_COLOR环境变量设置为true.但是,在框架的新主要版本中,此变量已停止以定义输出类型(颜色或monchrome).有没有办法在RSpec 2.0及更高版本中管道或重定向颜色?

谢谢.

Debian GNU/Linux 5.0.7;

Ruby 1.9.2;

RSpec 2.4.0.

更新


我自己找到了答案.

应该使用tty配置选项来实现效果.

这是一个例子:

# spec/spec_helper.rb

RSpec.configure do |config|
  config.tty = true
end
Run Code Online (Sandbox Code Playgroud)

Oct*_*Oct 1

通过查看来源,似乎color_enabled配置选项现在位于 RSpec 的配置模块中。但是,如果输出未完成到 tty,则颜色将被禁用

我的建议是设置color_enabled = true并猴子修补 RSpec 配置模块,这样即使不输出到 tty 也能正常工作:

module RSpec   
  module Core
    class Configuration
      def color_enabled
        true
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但这不是最好的方式。这也未经测试,我认为猴子修补 rspec 并不是最容易做的事情,因为通常测试是通过专用的命令行工具运行的。

也许您可以向维护人员提交错误报告并要求选择force_color_enabled?实施起来可能会非常快......

祝你好运,编码愉快!