在2.0之前的RSpec版本中,我可以将颜色输出传输给less或将其重定向到文件。为了做到这一点,我只需要将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
答案 0 :(得分:1)
通过查看sources,似乎color_enabled
配置选项现在位于RSpec的配置模块中。但是,如果没有输出tty,color is disabled。
我的建议是设置color_enabled = true
并修改RSpec配置模块,这样即使不输出到tty也能正常工作:
module RSpec
module Core
class Configuration
def color_enabled
true
end
end
end
end
但这并不是最好的方式。这也是未经测试的,我认为猴子修补rspec并不是最简单的事情,因为通常测试是通过专用命令行工具运行的。
也许您可以向维护者打开错误报告并要求force_color_enabled
选项?它可能会很快实施......
祝你好运,快乐的编码!
答案 1 :(得分:1)
这很简单:
# spec/spec_helper.rb
RSpec.configure do |config|
config.color_enabled = true
end
答案 2 :(得分:1)
问题的答案是正确答案:
# spec/spec_helper.rb
RSpec.configure do |config|
config.tty = true
end
然后rspec | grep --color="never" something
保持着色。