Rspec-core: Как заставить цвет без tty?

Созданный на 25 авг. 2012  ·  3Комментарии  ·  Источник: rspec/rspec-core

Я запускаю rspec вручную (без команды rspec ) и хочу установить для конфигурации цвета значение true.

Я пробовал:

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

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

И, как видите, это не работает.

Глядя на метод output_to_tty? :

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

Я предполагаю, что он бросает NoMethodError на output_stream.tty? и возвращает false - следовательно, цвет не может быть включен, поскольку параметр цвета зависит от этого метода, возвращающего истину.

Итак, как я могу (с помощью кода) установить истинную цветовую конфигурацию?

Самый полезный комментарий

Я обнаружил, что --color --tty сделал эту работу за меня. Мои тесты выполняются в автономной системе непрерывной интеграции, которая не записывает в TTY, но система CI может захватывать цветной вывод и соответствующим образом отображать его в веб-браузере, поэтому мы хотели использовать цвет, если это возможно.

Все 3 Комментарий

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

По общему признанию, это взлом, но это нормально, поскольку вы используете RSpec таким образом, для которого он на самом деле не предназначен.

Это прекрасно работает - спасибо, что поддержали меня в этом.

Я обнаружил, что --color --tty сделал эту работу за меня. Мои тесты выполняются в автономной системе непрерывной интеграции, которая не записывает в TTY, но система CI может захватывать цветной вывод и соответствующим образом отображать его в веб-браузере, поэтому мы хотели использовать цвет, если это возможно.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги