Estoy ejecutando rspec manualmente (sin el comando rspec
) y quiero establecer la configuración de color en verdadero.
He intentado:
RSpec.configure do |c|
c.tty = true
c.color = true
end
p RSpec.configuration.tty? # => true
p RSpec.configuration.color? # => false
Y como puede ver, eso no funciona.
Mirando el método output_to_tty?
:
def output_to_tty?
begin
output_stream.tty? || tty?
rescue NoMethodError
false
end
end
¿Supongo que está lanzando NoMethodError
en output_stream.tty? y devolviendo falso; por lo tanto, el color no se puede habilitar, ya que la opción de color depende de que este método devuelva verdadero.
Entonces, ¿cómo puedo (con el código), forzar la configuración de color a verdadera?
RSpec.configure do |c|
def c.color; true; end
end
Es cierto que es un truco, pero está bien, ya que está usando RSpec de una manera para la que realmente no está diseñado.
Esto funciona muy bien, gracias por apoyarme con esto.
Descubrí que --color --tty
hizo que esto funcionara para mí. Mis pruebas se ejecutan en un sistema de integración continua sin cabeza que no escribe en un TTY, pero el sistema CI puede capturar la salida en color y representarla adecuadamente en un navegador web, por lo que queríamos usar el color si fuera posible.
Comentario más útil
Descubrí que
--color --tty
hizo que esto funcionara para mí. Mis pruebas se ejecutan en un sistema de integración continua sin cabeza que no escribe en un TTY, pero el sistema CI puede capturar la salida en color y representarla adecuadamente en un navegador web, por lo que queríamos usar el color si fuera posible.