2011-03-06 4 views
3

J'utilise Rails 3, machiniste 2, concombre et rspec tous ensemble et ont deux fichiers blueprints.rb. Un dans le répertoire spec et un dans le répertoire features/support.pouvez concombre et rspec utiliser le même fichier blueprints.rb

Est-ce une bonne idée d'avoir juste un fichier blueprints.rb?

Si c'est le cas, quelle est la meilleure façon de procéder? Pour l'instant, je ne fais que symlinker mon fichier features/support/blueprints.rb à spec/blueprints.rb qui est peut-être mauvais, mais ça marche pour moi.

Répondre

5

i ont ceci à l'intérieur des fonctions/support

nom de fichier machinist.rb

require 'machinist/active_record' 

Dir[ File.dirname(__FILE__) + "/../../spec/blueprints/*"].each {|file| require file } 

Before { Sham.reset } # to reset Sham's seed between scenarios so each run has same random sequences 
+0

Je l'ai travailler si je juste besoin d' « exiger File.join (File.dirname (__ FILE__), "..", "..", "spec", "blueprints.rb") 'et la suppression de Sham.reset. – map7

1

Cela semble certainement raisonnable - nous le faisons pour les appareils partagés et les aides (mais je n'utilise pas Machinist).

Ce que vous avez probablement besoin de faire est d'inclure une ligne comme celle-ci dans vos fichiers d'aide cucumber et rspec. Qu'est-ce que cela fait est de mettre le répertoire contenant le fichier blueprints.rb en haut de la liste des chemins de Ruby à regarder lors de l'inclusion de fichiers.

$: << File.expand_path(File.join(File.dirname(__FILE__), "..","..","shared","directory")) 
#require 'blueprints' will now look in the above directory first 

Le « .. « » .. « une partie » partagée », « répertoire » étant le chemin relatif du fichier en cours dans le répertoire partagé où votre fichier est blueprints.rb.

Questions connexes