Comment configurer globalement RSpec pour conserver les options ‘–color’ et ‘–format specdoc’ activées

Comment définir la configuration globale de RSpec dans Ubuntu?

Plus précisément, –color et –format specdoc restnt activés dans tous mes projets (c.-à-d. Chaque fois que je lance rspec n’importe où).

Comme vous pouvez le voir dans les documents, l’utilisation prévue consiste à créer ~/.rspec et à y placer vos options, telles que --color .

Pour créer rapidement un fichier ~/.rspec avec l’option --color , exécutez simplement:

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

On peut aussi utiliser un fichier spec_helper.rb dans tous les projets. Le fichier doit inclure les éléments suivants:

 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 

Tout fichier d’exemple doit obliger l’assistant à utiliser ces options.

Dans votre fichier spec_helper.rb , incluez l’option suivante:

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

Vous devez ensuite exiger dans chaque fichier *_spec.rb qui doit utiliser cette option.

Si vous utilisez rake pour exécuter des tests rspec, vous pouvez éditer spec / spec.opts

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

Ou ajoutez simplement alias spec=spec --color --format specdoc à votre fichier ~ / .bashrc comme moi.

Une chose à prendre en compte est l’impact des différentes manières d’exécuter RSpec.

J’essayais d’activer l’option avec le code suivant dans spec / spec_helper.rb –

 Rspec.configure do |config| config.tty = $stdout.tty? end 
  1. appeler le binary ‘rspec’ directement – ou en tant que ‘bundle exec rspec’ et vérifier $ stdout.tty? reviendra vrai.
  2. invoquer la tâche ‘spécification de rake’ – ou en tant que ‘spécification de rake exécutable de bundle’ – Rake invoquera rspec dans un processus séparé, et $ stdout.tty? retournera faux.

Au final, j’ai utilisé l’option ~ / .rspec, avec juste –tty comme contenu. Fonctionne bien pour moi et maintient notre sortie de serveur CI propre.