Comment configurer globalement RSpec pour garder les options '--color' et '--format specdoc' activées


156

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

Plus précisément, --color et --format specdoc restent activés, dans tous mes projets (c'est-à-dire à chaque fois que je lance rspec n'importe où).

Réponses:


238

Comme vous pouvez le voir dans les documents ici , l'utilisation prévue consiste à créer ~/.rspecet à y mettre vos options, telles que--color .

Pour créer rapidement un ~/.rspecfichier avec l' --coloroption, exécutez simplement:

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

17
--ttyest également nécessaire si vous voulez de la couleur même lorsque vous utilisez des téléavertisseurs.
Adam Spiers

2
Quels sont les avantages / inconvénients à utiliser .rspecou spec_helper.rb? @shamaoke @christoph
Ian Vaughan

2
Un gros avantage de la ~/.rspecsolution est la portabilité. Par exemple, notre serveur CI ne gère pas très bien la sortie couleur. Avec le fichier de configuration du répertoire utilisateur, nous pouvons facilement l'adapter à différents environnements.
Christoph Petschnig

2
Une autre remarque pertinente est que vous pouvez créer le fichier .rspec au niveau d'un projet et l'appliquer uniquement à ce projet. Je pensais juste que certains voudraient peut-être le savoir ici aussi.
Nick Gronow

Le déplacement de mes options de configuration de spec_helper.rb vers .rspec a résolu ce problème pour moi.
Edward Anderson

149

On peut également utiliser un spec_helper.rbfichier 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 nécessiter l'assistant pour pouvoir utiliser ces options.


1
La question d'origine demande une configuration globale, celle-ci est spécifique au projet. Utile, mais pas la bonne réponse, contrairement à abyx qui pointe vers le .rspecfichier.
Olivier Lacan

8
Une recherche d'informations sur la configuration et les formateurs RSpec en amène une sur cette page, alors j'ai apprécié cette réponse, même si c'était pour la mauvaise question :-)
phatmann

3
color_enabledest maintenantcolor
elado le

12

Dans votre spec_helper.rbfichier, incluez l'option suivante:

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

Vous devez alors exiger dans chaque *_spec.rbfichier qui doit utiliser cette option.


Salut merci - seriez-vous en mesure d'élaborer sur ce qui suit: "Vous devez alors exiger dans chaque fichier * _spec.rb qui devrait utiliser cette option." Je ne comprends pas.
BKSpurgeon

Chacun de vos fichiers * _spec.rb commence généralement par require "spec_helper", vous ne devez pas oublier cela.
Christoph Petschnig


2

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


5
Cette solution n'est pas très portable. La bonne réponse est @abyx en utilisant .rspec, car lors de son enregistrement avec le projet, toute autre personne qui l'obtient obtiendra les mêmes paramètres.
Ian Vaughan

1
Mais la question portait sur "la configuration globale de RSpec dans Ubuntu", "à travers tous mes projets" pas en mode portable ni coop.
zzeroo

3
Humm, je suppose que vous avez raison, votre réponse concerne directement le PO. Je pensais à une vue d'ensemble, mais je pense toujours que la meilleure réponse était @abyx, si l'OP s'habitue à configurer correctement les projets, d'autres en bénéficieront, peut-être pas maintenant car il pourrait travailler en solo, mais les bonnes pratiques ne sont que cela. Désolé, un peu ranty, juste ma façon de penser.
Ian Vaughan

1
@zzeroo @Ian: Notez que placer le .rspecfichier dans le répertoire personnel de l'utilisateur (comme je l'ai mentionné dans ma réponse) fonctionne globalement pour toutes les invocations de rspec de l'utilisateur. C'est en fait plus solide que d'utiliser des alias, car certains gemmes / autres alias / outils que l'utilisateur pourrait utiliser n'utiliseraient pas nécessairement l'alias
abyx

1
Revenant maintenant à cette question et étant un peu plus âgé et plus sage, je conviens que la configuration du fichier .rspec dot est maintenant une meilleure option. Mise à jour de ma réponse approuvée à abyx, merci beaucoup zzero d'avoir mieux répondu à ma question en 2010. :)
Evolve le

1

Une chose à savoir 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 binaire 'rspec' directement - ou comme 'bundle exec rspec' et vérifier $ stdout.tty? retournera vrai.
  2. en invoquant la tâche 'rake spec' - ou en tant que 'bundle exec rake spec' - Rake invoquera rspec dans un processus séparé, et $ stdout.tty? retournera faux.

À la fin, j'ai utilisé l'option ~ / .rspec, avec juste --tty comme contenu. Fonctionne bien pour moi et maintient la sortie de notre serveur CI propre.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.