RSpec.Как раскрасить пайп или перенаправленный вывод? - PullRequest
5 голосов
/ 03 февраля 2011

В версиях RSpec до 2.0 я мог направить вывод цвета к меньшему или перенаправить его в файл.Чтобы сделать это, я просто должен установить для переменной среды RSPEC_COLOR значение true.Однако в новой основной версии платформы эта переменная перестала определять тип вывода (цветной или монохромный).Есть ли способ передать или перенаправить цвет в RSpec 2.0 и выше?

Спасибо.

Debian GNU / Linux 5.0.7;

Ruby 1.9.2;

RSpec 2.4.0.

Обновлено


Я нашел ответ самостоятельно.

Нужно использовать tty опция конфигурации для достижения эффекта.

Вот пример:

# spec/spec_helper.rb

RSpec.configure do |config|
  config.tty = true
end

Ответы [ 3 ]

1 голос
/ 18 ноября 2011

Это так же просто, как:

# spec/spec_helper.rb

RSpec.configure do |config|
  config.color_enabled = true
end
1 голос
/ 01 февраля 2017

Ответ в вопросе правильный:

# spec/spec_helper.rb

RSpec.configure do |config|
  config.tty = true
end

Тогда rspec | grep --color="never" something сохраняет окраску.

1 голос
/ 29 июня 2011

При просмотре источников кажется, что опция конфигурации color_enabled теперь находится в модуле конфигурации RSpec. Однако, если вывод не сделан для tty, цвет отключен .

Я бы предложил установить color_enabled = true и установить патч для модуля конфигурации RSpec, чтобы он работал, даже если не выводится на tty:

module RSpec   
  module Core
    class Configuration
      def color_enabled
        true
      end
    end
  end
end

Хотя это не самый лучший способ. Это также не проверено, и я думаю, что исправление обезьяны rspec - не самая простая вещь, потому что тесты обычно запускаются с помощью специального инструмента командной строки.

Может быть, вы могли бы открыть отчет об ошибке для сопровождающего и попросить вариант force_color_enabled? Возможно, это будет очень быстро реализовать ...

Удачи и удачного кодирования!

...