8
votes

Comment montrer des traces plus longues dans les cas de test de rails

Y a-t-il une variable de configuration à définir, ou d'une autre façon d'obtenir des rails ActiveSupport :: Testcase Pour afficher Plus d'une ligne de trace ? Il est vraiment difficile de déboguer autrement.

Exemple: xxx


4 commentaires

Pouvez-vous donner un exemple?


Je déteste mendier des primes, mais si vous ne l'attribuez pas (à qui que ce soit, pas nécessairement moi) il sera gaspillé. Ce serait triste, n'est-ce pas? ;-)


Fait: P Btw merci pour l'aide :)


Changé pour MiniTest Entre-temps, où définir $ Débogou fait la magie. Non testé avec unitest cependant.


4 Réponses :


1
votes

Vous pouvez essayer de définir une variable globale $ Débogou vers une valeur non nulle. Si c'est minitre qui filtre votre backtrage, réglage $ débogue = true garantirait que l'ensemble de la backtrage est imprimé.


0 commentaires

1
votes

Vous pouvez essayer d'envelopper le code de défaillance avec:

begin
  # failing code
rescue Exception => e
  puts e.message
  puts e.backtrace
end


0 commentaires

31
votes

Voir si vous n'avez pas de fichier config / initialiseurs / backtrace_silencers.rb

Il dit: xxx

Vous pouvez également appeler Supprimer_Filters! Si le premier n'était pas suffisant, mais les filtres ne font que les chemins plus courts, tandis que les silencieux retirent certaines lignes de la backtrace.

Vous pouvez trouver le code source dans Railties / Lib / Rails / Backtrace_Cleaner.rb et ActiveSupport / Lib / Active_Support / Backtrace_Cleaner.rb utile.


1 commentaires

Wow, semble être la solution! Totalement oublié cet initialiseur.



2
votes

Vous pouvez personnaliser les traces de pile minitates comme celle-ci par exemple: xxx

La méthode du filtre accepte la trace de pile complète dans le paramètre BT en tant que tableau et retourne le tableau filtré. Si vous souhaitez que l'intégralité de la pile affiche simplement, passez simplement l'entrée: xxx


0 commentaires