在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)
通过查看来源,似乎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?实施起来可能会非常快......
祝你好运,编码愉快!