Как глобально настроить 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.