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. P>
Si je fais "Rake Spec" ou "Rake TMP: Clear && Rake Spec" Mes tests échouent. P>
Si je fais "RSPEC" ou "RSPEC SPEC" ou "RAKE DB: test: préparer && rspec" Mes tests Pass. P>
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. P>
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. P>
très confus ... p>
3 Réponses :
Essayez d'exécuter rails_env = Test Rake SPEC CODE> P>
AFAIK Ce n'est pas bon, car Spec Rake CODE> appelle
dB: schéma: charger code> à 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 code> dans
Test code>?
Voici ce qui lui a réparé pour moi.
J'ai aussi pu exécuter 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. rake spec rails_env = test code>
J'ai eu mon gemfile comme celui-ci
DB: Migrate Rails_env = Test CODE> P>
group :development,:test do
gem 'rspec-rails','2.9.0'
...
end
group :development do
...
end
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).
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
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/...