Rspec-core: Como você pode forçar a cor sem tty?

Criado em 25 ago. 2012  ·  3Comentários  ·  Fonte: rspec/rspec-core

Estou executando o rspec manualmente (sem o comando rspec ) e quero definir a configuração de cores como verdadeira.

Eu tentei:

RSpec.configure do |c|
  c.tty = true
  c.color = true
end

p RSpec.configuration.tty? # => true
p RSpec.configuration.color? # => false

E como você pode ver, isso não funciona.

Olhando para o método output_to_tty? :

def output_to_tty?
  begin
    output_stream.tty? || tty?
  rescue NoMethodError
    false
  end
end

Estou supondo que está jogando NoMethodError em output_stream.tty? e retornando falso - portanto, a cor não pode ser habilitada, pois a opção de cor depende desse método retornar verdadeiro.

Então, como posso (com o código), forçar a configuração de cores para true?

Comentários muito úteis

Descobri que --color --tty fez isso funcionar para mim. Meus testes estão sendo executados em um sistema de integração contínua sem comando que não está gravando em um TTY, mas o sistema CI pode capturar a saída colorida e renderizá-la apropriadamente em um navegador da web, portanto, queríamos usar cores, se possível.

Todos 3 comentários

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

Reconhecidamente um hack, mas tudo bem, já que você está usando o RSpec de uma forma para a qual não foi realmente projetado.

Isso funciona muito bem - obrigado por me apoiar com isso.

Descobri que --color --tty fez isso funcionar para mim. Meus testes estão sendo executados em um sistema de integração contínua sem comando que não está gravando em um TTY, mas o sistema CI pode capturar a saída colorida e renderizá-la apropriadamente em um navegador da web, portanto, queríamos usar cores, se possível.

Esta página foi útil?
0 / 5 - 0 avaliações