Как глобально настроить RSpec, чтобы включить опции '--color' и '--format specdoc'

Как установить глобальную конфигурацию для RSpec в Ubuntu.

В частности, --color и --format specdoc остаются включенными во всех моих проектах (т.е. каждый раз, когда я запускаю rspec в любом месте).

Ответ 1

Как вы можете видеть в документах здесь, предполагаемое использование создает ~/.rspec и в нем помещаются ваши параметры, такие как --color.

Чтобы быстро создать файл ~/.rspec с параметром --color, просто запустите:

echo '--color' >> ~/.rspec 

Ответ 2

Во всех проектах также можно использовать файл spec_helper.rb. Файл должен содержать следующее:

RSpec.configure do |config|
  # Use color in STDOUT
  config.color = true

  # Use color not only in STDOUT but also in pagers and files
  config.tty = true

  # Use the specified formatter
  config.formatter = :documentation # :progress, :html,
                                    # :json, CustomFormatterClass
end

Любой файл примера должен требовать, чтобы помощник мог использовать эти параметры.

Ответ 3

В вашем файле spec_helper.rb укажите следующий параметр:

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

Затем вы должны потребовать в каждом файле *_spec.rb, который должен использовать эту опцию.

Ответ 4

Если вы используете rake для запуска тестов rspec, вы можете редактировать spec/spec.opts

http://rspec.info/rails/runners.html

Ответ 5

Или просто добавьте alias spec=spec --color --format specdoc в ваш файл ~/.bashrc, как я.

Ответ 6

Одна вещь, о которой нужно знать, - это влияние различных способов запуска RSpec.

Я пытался включить опцию со следующим кодом в spec/spec_helper.rb -

Rspec.configure do |config|
  config.tty = $stdout.tty?
end
  • вызов двоичного файла 'rspec' напрямую или как 'bundle exec rspec' и проверка $stdout.tty? вернет true.
  • ссылаясь на задачу "rake spec" - или как "bundle exec rake spec" - Rake вызовет rspec в отдельном процессе и $stdout.tty? вернет false.

В конце я использовал опцию ~/.rspec, с просто -tty в качестве ее содержимого. Хорошо работает для меня и обеспечивает чистоту вывода нашего сервера CI.