12
votes

Devrais-je utiliser «Spec Rake Spec» ou «RSPEC» (ne peut pas obtenir «Spec Rake» à travailler)?

Je suis sur Rails 3.2 et j'utilise RSPEC (2.11.1). Quand j'exécute ma suite de test avec "Spec Rake", j'ai des échecs. Quand je l'exécute avec "RSPEC", tout passe. J'ai vu d'autres mentions de ce problème, mais rien de définitif qui explique ce qui se passe et quelles sont les meilleures pratiques.

Si je fais "Rake Spec" ou "Rake TMP: Clear && Rake Spec" Mes tests échouent.

Si je fais "RSPEC" ou "RSPEC SPEC" ou "RAKE DB: test: préparer && rspec" Mes tests Pass.

Je pensais que la seule différence était que le râteau a fait "DB: test: préparez" mais si je le fais manuellement avant d'exécuter RSPEC, mes tests passent, de sorte que cela ne puisse pas être toute l'histoire.

Après avoir fait un peu de lecture, j'ai changé mon gemfile. Auparavant, je l'avais mis en place conformément au "Book RSPEC" (P328), où il décrit en mettant le gemme RSPEC à l'intérieur d'un "groupe: Développement,: Test". Après avoir lu d'autres postes, j'ai enlevé ": développement" et a fait un paquet. Maintenant "Rake Spec" ne fait rien. "RSPEC" fonctionne toujours comme avant.

très confus ...


3 commentaires

fait d'autres sondages. Avec le gemfile selon le livre RSPEC (avec: Développement,: test) exécutant RSPEC utilise l'environnement "Test", tandis que Rake Spec utilise l'environnement "Développement". Je ne sais pas en ce moment pourquoi c'est mais continuera à regarder ...


"Rails_env = 'Test' Spec Rake Spec". J'aurais attendu des tests par défaut à l'environnement de test sans que je doive être spécifique ...


Ma réponse a été supprimée (gracieuseté de @ Bhargav-rao) en tant que dupliqué de Stackoverflow.com/Questtions/15701298/...


3 Réponses :


9
votes

Essayez d'exécuter rails_env = Test Rake SPEC


1 commentaires

AFAIK Ce n'est pas bon, car Spec Rake appelle dB: schéma: charger à un moment donné et si vous définissez l'environnement de cette façon, il essaiera que le schéma de chargement de < Code> Test dans Test ?



3
votes

Voici ce qui lui a réparé pour moi. J'ai aussi pu exécuter rake spec rails_env = test code> J'ai eu mon gemfile comme celui-ci xxx pré>

Je l'ai changé, faisant un blocage de test et de développement et de la mettre avant em> l'état de développement. Je me suis également assuré que mes migrations de DB avaient tout fait dans le test DB. DB: Migrate Rails_env = Test CODE> P>

group :development,:test do
    gem 'rspec-rails','2.9.0'
        ...
end
group :development do
     ...
end


1 commentaires

hmm ... Ce sont fonctionnellement identiques, sauf peut-être l'orthographe du "développement" dans l'origine gemfile? Cela causerait que RSPEC ne soit pas chargé (échoue silencieusement).



3
votes

Selon RSPEC-Rails Github, placez GEM RSPEC-Rails dans les groupes de développement et de test du gemfile. En effet, la tâche de la râteau de test charge d'abord l'environnement de développement avant de passer à l'environnement de test.

group :development, :test do
  gem 'rspec-rails'
end


0 commentaires