我正在手动运行 rspec(没有rspec
命令),并且我想将颜色配置设置为 true。
我试过了:
RSpec.configure do |c|
c.tty = true
c.color = true
end
p RSpec.configuration.tty? # => true
p RSpec.configuration.color? # => false
正如你所看到的那样是行不通的。
查看output_to_tty?
方法:
def output_to_tty?
begin
output_stream.tty? || tty?
rescue NoMethodError
false
end
end
我猜它在 output_stream.tty 上抛出了NoMethodError
? 并返回 false - 因此,无法启用颜色,因为颜色选项取决于返回 true 的此方法。
那么我如何(使用代码)强制颜色配置为真?
RSpec.configure do |c|
def c.color; true; end
end
不可否认,这是一种黑客行为,但这没关系,因为您以一种并非真正设计的方式使用 RSpec。
这很好用 - 谢谢你支持我。
我发现--color --tty
对我有用。 我的测试在一个没有写入 TTY 的无头持续集成系统中运行,但是 CI 系统可以捕获彩色输出并在 Web 浏览器中适当地呈现它,因此我们希望尽可能使用颜色。
最有用的评论
我发现
--color --tty
对我有用。 我的测试在一个没有写入 TTY 的无头持续集成系统中运行,但是 CI 系统可以捕获彩色输出并在 Web 浏览器中适当地呈现它,因此我们希望尽可能使用颜色。