我尝试通过 Ruby 将命令行命令的输出传递给管道。它工作正常,但缺少着色。我怎样才能保存颜色?
这就是我的代码的样子:
cmd = "cucumber #{ARGV.join(" ")}"
IO.popen(cmd) do |io|
io.each { |s| print s }
end
更新:问题的前提是错误的 - IO.popen确实保留了颜色。
我尝试通过 Ruby 将命令行命令的输出传递给管道。它工作正常,但缺少着色。我怎样才能保存颜色?
这就是我的代码的样子:
cmd = "cucumber #{ARGV.join(" ")}"
IO.popen(cmd) do |io|
io.each { |s| print s }
end
更新:问题的前提是错误的 - IO.popen确实保留了颜色。
-c
使用该选项运行黄瓜。否则 cucumber 确定终端(管道)不支持着色,如果没有明确强制使用,将丢弃它-c
。
https://github.com/cucumber/cucumber/blob/master/lib/cucumber/cli/options.rb#L211
...
opts.on("-c", "--[no-]color",
"Whether or not to use ANSI color in the output. Cucumber decides",
"based on your platform and the output destination if not specified.")
...