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を返します-したがって、colorオプションはtrueを返すこのメソッドに依存しているため、colorを有効にすることはできません。
では、どうすれば(コードを使用して)カラー構成をtrueに強制できますか?
RSpec.configure do |c|
def c.color; true; end
end
確かにハックですが、実際には設計されていない方法でRSpecを使用しているので、問題ありません。
これはうまくいきます-これで私をサポートしてくれてありがとう。
--color --tty
が私のためにこの仕事をしたことがわかりました。 私のテストは、TTYに書き込まないヘッドレス継続的インテグレーションシステムで実行されていますが、CIシステムは色付きの出力をキャプチャし、Webブラウザーで適切にレンダリングできるため、可能であれば色を使用したいと思いました。
最も参考になるコメント
--color --tty
が私のためにこの仕事をしたことがわかりました。 私のテストは、TTYに書き込まないヘッドレス継続的インテグレーションシステムで実行されていますが、CIシステムは色付きの出力をキャプチャし、Webブラウザーで適切にレンダリングできるため、可能であれば色を使用したいと思いました。