51 votes

Comment charger un spec_helper.rb automatiquement dans RSpec 2

Lorsque je développe des gemmes en Ruby, j'ai presque toujours besoin d'un fichier dans lequel je peux configurer RSpec en fonction de mes besoins et, peut-être, avant de le faire, j'ai besoin de quelques modules d'aide qui devraient être disponibles dans tous mes modules de gestion de la qualité. spec exemples.

Dans les applications Rails, un fichier nommé spec/spec_helper.rb est utilisé pour cela. Une chose qui m'ennuie est que dans l'environnement typique de Rails, vous devez exiger ce fichier spec_helper.rb dans chaque fichier qui contient des exemples pour qu'il soit chargé. Dans le passé, j'ai eu beaucoup de problèmes liés à la modification des chemins de chargement et des chemins d'exigence relatifs dans les fichiers d'exemple.

Maintenant, pour mes gemmes, j'aimerais avoir un moyen de dire à RSpec d'exiger le fichier spec_helper.rb avant de charger n'importe quel fichier d'exemple. Indépendamment du fait que j'appelle rspec exécutable, ou la tâche rake spec que je peux définir dans mon Rakefile.

Je sais que je peux indiquer à RSpec uniquement l'emplacement de mon spec_helper.rb ; ce spec_helper.rb requiert tous les fichiers d'exemple manuellement, mais je voudrais également éviter la maintenance supplémentaire de cette approche.

Existe-t-il un moyen plus agréable d'accomplir cette tâche ?

112voto

Jacob Points 9117

Dans RSpec 2, le /spec se trouve toujours automatiquement dans votre chemin de chargement. Cela signifie que tout ce dont vous avez besoin est :

require 'spec_helper'

en haut de vos fichiers de spécification. Ceci chargera toujours /spec/spec_helper.rb C'est le minimum avec lequel vous pouvez vous en sortir.

Cela signifie que vous Ne le fais pas. ont besoin d'une approche horrible telle que :

require File.join(File.dirname(File.dirname(__FILE__)), 'spec_helper.rb')

(qui doit être mis à jour pour les différents niveaux d'imbrication).

Vous pouvez également ajouter à votre .rspec l'option : --require spec_helper qui exigera ce fichier dans chaque fichier de spécification, sans l'instruction require manuelle en haut.

37voto

Doug Points 1398

El --require spec_helper est automatiquement ajoutée au fichier .rspec pour RSpec 3.0 lorsque vous effectuez la procédure suivante rspec --init .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X