96 votes

Comment obtenir rspec-2 pour donner la trace complète associée à un échec de test ?

Droit maintenant, si je lance mon test suite à l'aide de rake spec j'obtiens une erreur:

1) SegmentsController OBTENIR 'index' devrait fonctionner
 Panne/Erreur: 'index'
 undefined method `locale' #
 # ./spec/controllers/segments_controller_spec.rb:14:
 dans le bloc " (3 niveaux)'

C'est normal que j'ai une erreur :)

Le problème est que la trace n'est pas très utile. Je sais qu'il s'est cassé en segments_controller_spec.rb, la ligne 14, mais c'est justement là que j'appelle le test:

### segments_controller_spec.rb:14
get 'index'

Je préfère avoir la ligne de rupture, et à la trace, et pas de la partie dans la spec dossier.

En cours d'exécution avec --trace ne l'aide pas.

245voto

solnic Points 3834

Vous devez exécuter rspec avec l’option -b voir backtrace complet

29voto

nathanvda Points 25878

Une autre alternative (plus facile) consiste à modifier le du fichier et ajouter la option. Il devrait ressembler un peu comme ceci :

Cela vous donnera le backtrace complet. J’espère que cela aide.

2voto

Nowaker Points 2449

Une autre approche consiste à effacer tous les motifs d’exclusion de backtrace dans . J’aime cette solution plus que je suis en mesure de conserver tous les paramètres de RSpec en un seul endroit et de se débarrasser de ou explicite dans .

1voto

bat Points 5380

Je ne sais pas comment pour obtenir le contrôleur de l'erreur de montrer dans rspec. Parfois, il s'affiche mais je ne sais pas ce qui cause des conditions à se présenter. Ici est une façon de voir l'erreur assez rapidement si:

Ouvrez une autre session de terminal et exécutez:

tail -f log/test.log

Puis revenir à la session de terminal et exécutez simplement le spec qui a eu l'erreur:

bin/rspec -b spec/requests/posts/index_spec.rb

Revenir à la fin du journal et vous devriez voir l'erreur, espérons-le, sans trop d'autres trucs autour d'elle (parce que vous avez exécuté le test en échec par lui-même).

0voto

yagudaev Points 1286

Une autre option quand tout le reste échoue est de simplement ajouter un bloc de sauvetage et imprimer la pile essayez ou ajoutez une liaison pry instruction il d’utiliser `` .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X