Rspec-core: ttyなしで色を強制するにはどうすればよいですか?

作成日 2012年08月25日  ·  3コメント  ·  ソース: rspec/rspec-core

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に強制できますか?

最も参考になるコメント

--color --ttyが私のためにこの仕事をしたことがわかりました。 私のテストは、TTYに書き込まないヘッドレス継続的インテグレーションシステムで実行されていますが、CIシステムは色付きの出力をキャプチャし、Webブラウザーで適切にレンダリングできるため、可能であれば色を使用したいと思いました。

全てのコメント3件

RSpec.configure do |c|
  def c.color; true; end
end

確かにハックですが、実際には設計されていない方法でRSpecを使用しているので、問題ありません。

これはうまくいきます-これで私をサポートしてくれてありがとう。

--color --ttyが私のためにこの仕事をしたことがわかりました。 私のテストは、TTYに書き込まないヘッドレス継続的インテグレーションシステムで実行されていますが、CIシステムは色付きの出力をキャプチャし、Webブラウザーで適切にレンダリングできるため、可能であれば色を使用したいと思いました。

このページは役に立ちましたか?
0 / 5 - 0 評価