En ce moment, si j'exécute ma suite de tests en utilisant, rake spec
j'obtiens une erreur:
1) SegmentsController GET 'index' devrait fonctionner Échec / Erreur: obtenir 'index' méthode non définie `locale 'pour # # ./spec/controllers/segments_controller_spec.rb:14: dans `bloc (3 niveaux) dans '
C'est normal car j'ai une erreur :)
Le problème est que la trace n'est pas très utile. Je sais que ça a éclaté segments_controller_spec.rb
, ligne 14, mais c'est là que j'appelle le test:
### segments_controller_spec.rb:14
get 'index'
Je préférerais avoir le saut de ligne réel et la trace complète, pas la partie dans le dossier spec.
Courir avec --trace
n'aide pas.
Réponses:
Vous devez exécuter rspec avec
-b
option pour voir les backtraces complètesla source
Une autre alternative (plus simple) consiste à modifier le
.rspec
fichier et à ajouter l'backtrace
option. Cela devrait ressembler un peu à ceci:Cela vous donnera la trace complète. J'espère que cela t'aides.
la source
color
. Je pense que si vous l'épelez,colour
une blague de Monty Python pourrait apparaîtreCela fonctionnera également:
la source
Une autre approche consiste à effacer tous les modèles d'exclusion de backtrace dans
spec_helper.rb
. Je aime cette solution la plus que je suis capable de garder tous les paramètres RSpec en un seul endroit et se débarrasser de.rspec file
ou explicite--backtrace
dans.travis.yml
.la source
Je ne sais pas comment faire apparaître l'erreur du contrôleur dans rspec. Parfois, il apparaît, mais je ne sais pas dans quelles conditions il apparaît. Voici un moyen de voir l'erreur assez rapidement:
Ouvrez une autre session de terminal et exécutez:
Revenez ensuite à la session du terminal et exécutez uniquement la spécification qui avait l'erreur:
Revenez à la fin du journal et vous devriez voir l'erreur, avec un peu de chance sans trop d'autres éléments qui l'entourent (car vous avez exécuté le test échoué par lui-même).
la source
Une autre option quand tout le reste échoue est simplement d'ajouter un bloc de secours et d'imprimer la pile try ou d'y ajouter une instruction de liaison pry et d'utiliser
show-stack
.la source
begin
etrescue
comme instruction externe de la méthode d'action du contrôleur. Ou utilisezrescue_from
.git diff
avant de vous engager, cela sauvera votre bacon.