Configuration Factory Girl avec Test :: Unit et Shoulda
Je suis en train de configurer Factory Girl avec Test::Unit et Shoulda en Ruby on Rails. J'ai installé le gem, créé mon usine de déposer en vertu de l'essai, les usines de répertoire, et créé mon fichier de spécifications en vertu de l'essai/répertoire des modèles. Le courant d'erreur que j'obtiens est 'ArgumentError: Aucun d'usine: test', ce qui m'amène à croire que le test_factory.rb fichier n'est pas chargé? Aucune idée de ce que je devrais changer?
Voici mes fichiers.
#test/factories/test_factory.rb
Factory.define :test do |t|
t.name 'test_spotlight'
t.label 'test spotlight label'
end
et
#test/modes/test_spec.rb
require 'test_helper'
require 'factory_girl'
class TestTest < Test::Unit::TestCase
def setup
@test = Factory.build(:test)
end
context "A test" do
should "save with the minimum requirements" do
assert @test.save
end
end
end
source d'informationauteur NolanDC
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré ce problème sur un de mes projets. Je ne sais pas exactement ce qui cause le code d'initialisation pour être ignorées, mais vous pouvez forcer la charge de l'usine de définitions comme ceci:
Espère que cette aide.
Essayer de mettre cela dans test_helper.rb:
Viens de découvrir factory_girl_rails, où il est dit que le chargement automatique est la seule petite chose qu'il a https://github.com/thoughtbot/factory_girl_rails
J'ai eu le même problème. Finalement je l'ai fait faire par mettre toutes mes usines "/test/usines.rb" et écrit les lignes suivantes dans mon "/test/test_helper.rb" fichier:
vous pourriez faire la même chose pour plusieurs fichiers en les obligeant à la test_helper. Je n'ai pas encore compris pourquoi l'auto-include qui est mentionné dans "factory_girl" readme n'arrive pas.
J'ai aussi réussi à se débarrasser de ce problème en mettant cette ligne dans mon environnement.rb:
config.gem "factory_girl", :source => "http://gemcutter.org"
Assurez-vous d'avoir la dernière gemme:
Le nom a été changé de "thoughtbot-factory_girl" à "factory_girl", la source a changé de "http://gems.github.com" à "http://gemcutter.org".
Dans le cas où vous avez eu ce problème avec ruby 1.9.2, besoin prévoit l'élargissement de la voie.
Ce patch résolu mon problème. Je viens d'envoyer une demande d'extraction.
Après que vous pouvez ajouter à votre
test_helper.rb
:Si je ne le nécessaire "factory_girl" dans test_helper.rb, je voudrais obtenir le même comportement que vous avez mentionné, mais si j'ai tenu dans mes config/test/environnement.rb (remarque j'utilise environnementaliste) il serait bien connaître la définition Usine sans aucun problème.
J'ai essayé cette après la lecture de l'usine de fille rdoc où il est dit de mettre de config.gemme dans votre environnement.
J'ai aussi couru le problème - après la mise à jour FactoryGirl 1.3.2 - les usines de test/usines n'étaient pas chargés automatiquement.
Je pouvais me débarrasser de ce problème en ajoutant le code de la dg dans test_helper.rb:
Lors de l'exécution d'un seul test dans Textmate, tout a bien fonctionné, mais en cours d'exécution par exemple, tous les tests unitaires à partir de la ligne de commande à l'aide du râteau test:parts a échoué avec une DuplicateDefinitionError (j'ai lu qu'il a probablement quelque chose à voir avec ruby 1.8.x). J'ai donc modifié un peu le code:
Avez-vous essayé de déplacer le
à votre test/test_helper.rb ?
L'usine mécanisme de chargement automatique peut dépendre de l'endroit où le besoin est appelée. Il pourrait être d'essayer de trouver des usines *test/modèles/usines/** au lieu de *test/usines/**
Au lieu de nommer votre usine fichier test_factory.rb, essayez de le nommer à l'usine.rb
Intéressant. J'ai eu un problème similaire en essayant d'obtenir de concombre à travailler avec factory_girl. J'avais initialement configuré factory_girl être cherchée ('config.gem') mais n'est pas chargée dans le concombre de l'environnement et entièrement requis dans les " features/support/env.rb', de même que les concombres ne pour webrat, etc. Que seulement commencé à travailler quand j'ai dit explicitement factory_girl à trouver ses définitions comme Kenny suggéré ci-dessus.
Quand j'ai enlevé le besoin énoncé de l'env.rb et entièrement nécessaire factory_girl dans le concombre de l'environnement, l'effet s'en alla, et factory_girl travaillé hors de la boîte.
De sorte qu'il semble vraiment être une question de quand (ou dans quel contexte) factory_girl chargé.
Depuis personnes différentes utilisent différentes versions de Rails (2.x et 3.x étant le plus commun maintenant), il est important d'inclure les autres renseignements pertinents sur les morceaux de votre environnement (le plus important étant la version de Rails vous êtes sur). À partir de la factory_girl page web, la version 1.3.0 de la documentation (http://rubydoc.info/gems/factory_girl/1.3.0/frames):
Si vous rencontrez des problèmes avec le chargement, je vous suggère de vous assurer que vous utilisez la bonne version. Les versions de factory_girl plus que 1.2.4, je suppose, sont utilisés comme des dépendances de la "factory_girl_rails' (Rails 3.0+) gem.
J'ai ajouté
require 'factory_girl'
à spec_helper.rb.rb quels aidé, mais j'ai rememberd Spork peut parfois ba un peu un problème, alors j'ai redémarré Spork sansrequire File.dirname(FILE) + "/factories"
require
et puis il a bien fonctionné.