9
votes

Comment puis-je supprimer l'énorme trace de la pile après une défaillance de test de test de râteau?

Je crée un rakeFile pour un projet et j'ai défini des testtases de râteau. J'ai couru un test de santé mentale simple qui fait un asser_equal (1, 2) code> juste pour vérifier la sortie et, en plus de la sortie d'échec habituelle, je reçois ce désordre:

rake aborted!
Command failed with status (1): [/usr/bin/ruby -w -I"lib:." "/usr/lib/ruby/...]
/usr/lib/ruby/1.9.1/rake.rb:993:in `block in sh'
/usr/lib/ruby/1.9.1/rake.rb:1008:in `call'
/usr/lib/ruby/1.9.1/rake.rb:1008:in `sh'
/usr/lib/ruby/1.9.1/rake.rb:1092:in `sh'
/usr/lib/ruby/1.9.1/rake.rb:1027:in `ruby'
/usr/lib/ruby/1.9.1/rake.rb:1092:in `ruby'
/usr/lib/ruby/1.9.1/rake/testtask.rb:115:in `block (2 levels) in define'
/usr/lib/ruby/1.9.1/rake.rb:1110:in `verbose'
/usr/lib/ruby/1.9.1/rake/testtask.rb:100:in `block in define'
/usr/lib/ruby/1.9.1/rake.rb:634:in `call'
/usr/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
/usr/lib/ruby/1.9.1/rake.rb:629:in `each'
/usr/lib/ruby/1.9.1/rake.rb:629:in `execute'
/usr/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain'
/usr/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/usr/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
/usr/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites'
/usr/lib/ruby/1.9.1/rake.rb:602:in `each'
/usr/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites'
/usr/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain'
/usr/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/usr/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
/usr/lib/ruby/1.9.1/rake.rb:581:in `invoke'
/usr/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task'
/usr/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level'
/usr/lib/ruby/1.9.1/rake.rb:2019:in `each'
/usr/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level'
/usr/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/lib/ruby/1.9.1/rake.rb:2013:in `top_level'
/usr/lib/ruby/1.9.1/rake.rb:1992:in `run'
/usr/bin/rake:31:in `<main>'


0 commentaires

5 Réponses :


0
votes

regarder dans config / initialiseurs / backtrace_silencers.rb

Vous devez être capable d'ajouter quelque chose comme xxx


0 commentaires

1
votes

RAKE Normalement ne montre pas de backtrage à moins que vous spécifiez - trace . Peut-être que vous avez configuré RAKE pour toujours exécuter dans - TRACE Mode?

Par défaut, RAKE n'imprime pas la trace de la pile si vous obtenez une erreur dans le code des appels Rake. Vous pouvez obtenir la trace de la pile en fonctionnant avec le drapeau -Trace, mais je préférerais généralement le voir quand même. Vous pouvez le faire en mettant Rake.Application.Option.Trace = true dans le fichier de rakefile.

Si non, vous pouvez essayer de définir le paramètre rake.application.option.trace = false dans votre fichier de rakefile.


1 commentaires

Afaik, je n'ai pas de traçage activé - non - trace drapeau et j'ai essayé de définir l'option comme vous l'avez mentionné - même résultat.



3
votes

J'ai eu le même problème que vous et résolu-le en mettant à jour le râteau: gem installation rake

Ceci est mis à jour de tout ce que j'avais à 0,8,7.

Je suis en cours d'exécution 1.9.2-P180 (OS X, installé avec homebrew) et exécutez des tests sur un projet nouvellement créé (fait avec houe).


1 commentaires

Bizarre, j'ajoute toujours une trace imprimée sur 0.8.7 . Mis à jour sur 0.9.2 Correction du problème de mon côté.



1
votes

RAKE ne devrait pas retourner une backtrage dans cette situation - l'erreur est avec la commande externe, pas des internaux de Rake. J'ai envoyé un email à Jim Weirich concernant le correctif suivant: https://gist.github.com/1003628


0 commentaires

1
votes

J'ai toujours eu des traces de pile indésirables dans Rake 0.8.7, la mise à jour à 0,9.2 a finalement aidé pour moi (Ruby 1.9.2P180 [I386-Mingw32] sur Win7 32 bits).


1 commentaires

Je suis aussi mis à jour à partir de 0.8.7 au dernier ( 0.9.2 ) et le problème a été résolu.