Rspec-core: Comment forcer la couleur sans tty ?

Créé le 25 août 2012  ·  3Commentaires  ·  Source: rspec/rspec-core

J'exécute rspec manuellement (sans la commande rspec ) et je souhaite définir la configuration des couleurs sur true.

J'ai essayé:

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

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

Et comme vous pouvez le voir, cela ne fonctionne pas.

En regardant la méthode output_to_tty? :

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

Je suppose qu'il lance NoMethodError sur output_stream.tty ? et retournant false - par conséquent, la couleur ne peut pas être activée, car l'option color dépend de cette méthode retournant true.

Alors, comment puis-je (avec du code) forcer la configuration des couleurs à true ?

Commentaire le plus utile

J'ai trouvé que --color --tty faisait ce travail pour moi. Mes tests s'exécutent dans un système d'intégration continue sans tête qui n'écrit pas sur un TTY, mais le système CI peut capturer la sortie colorée et la restituer de manière appropriée dans un navigateur Web, nous voulions donc utiliser la couleur si possible.

Tous les 3 commentaires

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

Certes, un hack, mais ce n'est pas grave puisque vous utilisez RSpec d'une manière pour laquelle il n'est pas vraiment conçu.

Cela fonctionne très bien - merci de me soutenir avec cela.

J'ai trouvé que --color --tty faisait ce travail pour moi. Mes tests s'exécutent dans un système d'intégration continue sans tête qui n'écrit pas sur un TTY, mais le système CI peut capturer la sortie colorée et la restituer de manière appropriée dans un navigateur Web, nous voulions donc utiliser la couleur si possible.

Cette page vous a été utile?
0 / 5 - 0 notes