Я запускаю 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 - следовательно, цвет не может быть включен, поскольку параметр цвета зависит от этого метода, возвращающего истину.
Итак, как я могу (с помощью кода) установить истинную цветовую конфигурацию?
RSpec.configure do |c|
def c.color; true; end
end
По общему признанию, это взлом, но это нормально, поскольку вы используете RSpec таким образом, для которого он на самом деле не предназначен.
Это прекрасно работает - спасибо, что поддержали меня в этом.
Я обнаружил, что --color --tty
сделал эту работу за меня. Мои тесты выполняются в автономной системе непрерывной интеграции, которая не записывает в TTY, но система CI может захватывать цветной вывод и соответствующим образом отображать его в веб-браузере, поэтому мы хотели использовать цвет, если это возможно.
Самый полезный комментарий
Я обнаружил, что
--color --tty
сделал эту работу за меня. Мои тесты выполняются в автономной системе непрерывной интеграции, которая не записывает в TTY, но система CI может захватывать цветной вывод и соответствующим образом отображать его в веб-браузере, поэтому мы хотели использовать цвет, если это возможно.