Rspec-core: ¿Cómo se puede forzar el color sin tty?

Creado en 25 ago. 2012  ·  3Comentarios  ·  Fuente: rspec/rspec-core

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?

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.

Todos 3 comentarios

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.

¿Fue útil esta página
0 / 5 - 0 calificaciones