12
votes

Le chargement des résultats du message et des tests apparaît après l'exécution de la tâche Rake dans les rails

La sortie suivante apparaît après avoir exécuté certaines tâches de râteau: xxx pré>

Cette sortie n'est pas utile ni nécessaire pour les tâches non liées aux tests. J'aimerais l'empêcher de comparaître. Je suppose que cela découle de nécessiter un fichier donné ou comprenant un certain module. P>

mis à jour: il apparaît que j'avais mal et que cela se pose pendant certaines des tâches intégrées à des rails. Voici la sortie des appareils chargés avec - TRACE CODE>. P>

$ rake db:fixtures:load --trace

** Invoke db:fixtures:load (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:fixtures:load
Loaded suite /usr/bin/rake
Started

Finished in 0.000255 seconds.

0 tests, 0 assertions, 0 failures, 0 errors


0 commentaires

3 Réponses :


1
votes

Vérifiez d'abord le motif de test pour votre RAKE :: testTask . Devrait être quelque chose comme 'test / ** / * _ _ test.rb' .

Pour une raison quelconque, Test :: Unité tente de trouver des tests dans le / usr / bin / râteau exécutable, ce qui signifie probablement que vous avez un motif faux quelque part.

Chaque fois que vous avez des problèmes, vous souhaitez exécuter rake avec - TRACE pour voir quelles tâches et quelles dépendances de tâches sont exécutées et dans quel ordre. Si la mise à jour du modèle ne fonctionne pas, veuillez copier la sortie d'une exécution complète avec - TRACE activé dans votre question.


4 commentaires

L'un des autres développeurs que je travaille sur le projet a récemment fourni tous nos gemmes. C'est possible c'est la cause? Les seuls endroits appelés Rake :: Testtask sont dans les répertoires de gemmed et de plugin fournis.


Difficile à dire sans la sortie de - trace . S'il n'y a pas de tâche de test explicite, vous voulez probablement écrire le vôtre. La tâche de test par défaut ne fera rien d'utile comme Vérifiez votre couverture de code. Quoi qu'il en soit, si un test de test se produit pour toute tâche de râteau arbitraire, vous avez des dépendances de tâches en désordre et vous devez utiliser - trace pour le déboguer.


Bob, j'ai essayé de courir une tâche avec la trace, mais cela ne m'a rien dit de plus. Tout ce que j'ai découvert, c'est que quelles que soient les sorties, cela fonctionne après que mon code soit terminé.


OK ... temps de décharge de classe. Je pense que vous avez un problème avec le chargeur de fichiers agressif de ActiveSupport. Veuillez énumérer tous vos modèles que les noms de classe qualifiés de vos modèles.



11
votes
La solution

peut être trouvée ici:

http://github.com/thoughtbot/shoulda/issues/#issue / 59

Fondamentalement, n'exige pas le gemme de devoir sauf si c'est l'environnement de test (lorsque le test / unité serait déjà requis).


2 commentaires

Merci pour la réponse Fowlduck. Vous étiez correct. Nous avions placé l'appel config.gem à l'intérieur de l'environnement.rb au lieu d'environnements / test.rb


Dans un projet 3.2.2, j'ai vu ce comportement (unité de test fonctionnant après certaines tâches de râteau) et que le problème était que j'ai eu le devis dans le groupe: Test,: Bloc de développement. Le déplaçant vers le: bloc de test (avec d'autres que j'avais paresseusement mis dans les deux) supprimé l'appel à l'unité de test.



0
votes

Je suis arrivé à ce fichier: ~ / .rvm / Rubies / Ruby-1.9.2-Head / Lib / Ruby / 1.9.1 / MiniTest / Unité.rb

et à la ligne 498 (juste après " .Autorun ") J'ai mis: P>

return # the user of this computer put this here, because of reasons


0 commentaires