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?
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.
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.