Як глобально налаштувати RSpec, щоб увімкнути параметри '--color' та '--format specdoc'


156

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

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

Відповіді:


238

Як ви бачите в документах тут , призначене використання створюється ~/.rspecі в ньому розміщуються ваші параметри, такі як--color .

Щоб швидко створити ~/.rspecфайл із --colorможливістю, просто запустіть:

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

17
--ttyтакож потрібен, якщо ви хочете кольору навіть при використанні пейджерів.
Адам Шпіерс

2
Які плюси та мінуси використання .rspecабо spec_helper.rb? @shamaoke @christoph
Ian Vaughan

2
Однією з великих переваг ~/.rspecрішення є портативність. Наприклад, наш сервер CI не дуже добре справляється з кольоровим виведенням. За допомогою конфігураційного файлу користувача dir ми можемо легко прийняти його до різних середовищ.
Крістоф Петшніг

2
Ще одна відповідна примітка полягає в тому, що ви можете створити файл .rspec на рівні проекту та застосувати його саме до цього проекту. Просто подумав, що дехто, можливо, захоче це знати і тут.
Нік Гронов

Переміщення моїх параметрів конфігурації з spec_helper.rb на .rspec вирішило цю проблему для мене.
Едвард Андерсон

149

Також можна використовувати 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

Будь-який прикладний файл повинен вимагати від помічника, щоб мати можливість використовувати ці параметри.


1
Оригінальне запитання задає глобальну конфігурацію, це конкретний проект. Корисна, але не правильна відповідь, на відміну від абіксиси, яка вказує на .rspecфайл.
Олів'є Лакан

8
Пошук інформації про конфігурацію та формати RSpec приносить її на цю сторінку, тому я оцінив цю відповідь, навіть якщо це було неправильне питання :-)
phatmann

3
color_enabledзаразcolor
еладо

12

У свій spec_helper.rbфайл включіть наступний варіант:

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

Потім потрібно вимагати в кожному *_spec.rbфайлі, який повинен використовувати цю опцію.


Привіт спасибі - чи зможете ви детальніше розглянути наступне: "Тоді вам потрібно вимагати у кожному файлі * _spec.rb, який повинен використовувати цю опцію." я не розумію
BKSpurgeon

Кожен ваш * _spec.rb файл зазвичай починається з вимагати "spec_helper", ви не повинні забувати це.
Крістоф Печніг


2

Або просто додати alias spec=spec --color --format specdocу файл ~ / .bashrc, як я.


5
Це рішення не дуже портативне. Правильна відповідь - @abyx з використанням .rspec, як коли він зареєстрований у проекті, будь-хто інший, який отримав його, отримає ті самі налаштування.
Ian Vaughan

1
Але питання стосувалося "глобальної конфігурації для RSpec в Ubuntu", "не для всіх моїх проектів", а не для портативного чи режиму coop.
zzeroo

3
Гумм, я гадаю, ваше право, ваша відповідь стосується безпосередньо ОП. Я думав про більшу картину, але все ще думаю, що кращою відповіддю був @abyx, якщо ОП звикне правильно налаштовувати проекти, то інші отримають користь, можливо, не зараз, як він може працювати в соло, але хороші практики - це лише те. Вибачте, трохи ранті, просто мій спосіб мислення.
Ian Vaughan

1
@zzeroo @Ian: Зауважте, що розміщення .rspecфайлу в домашній директорії користувача (як я вже згадував у своїй відповіді) працює у всьому світі для всіх викликів користувача rspec. Це насправді твердіше, ніж використання псевдонімів, оскільки деякі дорогоцінні камені / інші псевдоніми / інструменти, якими користувач може користуватися, не обов'язково використовують псевдонім
abyx

1
Тепер, повертаючись до цього питання і, будучи трохи старшим і мудрішим, я погоджуюся з тим, що встановити файл .rspec точок тепер кращий варіант. Оновлення моєї схваленої відповіді в abyx, спасибі так багато zzero за відповідь на моє питання найкраще ще в 2010 році. :)
Evolve

1

Слід пам’ятати про вплив різних способів роботи RSpec.

Я намагався включити параметр із наступним кодом у spec / spec_helper.rb -

Rspec.configure do |config|
  config.tty = $stdout.tty?
end
  1. виклику двійкового файлу 'rspec' - або як 'пакет bexle exec rspec' і перевірка $ stdout.tty? повернеться правдою.
  2. виклик завдання "специфікація граблі" - або як "зв'язок графіка специфікації граблі" - Rake буде викликати rspec в окремому процесі, і $ stdout.tty? повернеться помилковим.

Врешті-решт я використав параметр ~ / .rspec, з вмістом просто --ty. Для мене добре працює і підтримує чистий вихід нашого сервера CI.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.