90 votes

définition de points d'arrêt avec nosetests - option pdb

Nosetests --apb laissez-moi arrêter au moment de l'erreur ou l'échec, mais c'est trop tard pour mes besoins. Parcourant le code en cours d'exécution me permet de déboguer où est le problème.

Cependant, nosetests sont utiles, car ils permettent de tests qui reposent sur le nombre relatif des importations (c'est à dire des tests dans un package).

Comment puis-je définir des points d'arrêt avant l'exécution des tests? Actuellement, je suis en utilisant:

python -m pdb /path/to/my/nosetests testfile.py

Cette solution n'est pas adéquate. Nosetests interférer avec apb sortie, et mes commandes au clavier (par exemple, les touches fléchées) sont cassés.

À l'aide d'importation apb; apb.set_trace() semblerait une bonne idée, cependant nosetests bloque mon accès à l'apb de la console.

145voto

Matt Luongo Points 4671

Mieux que de ne pas oublier d’utiliser -s c’est d’utiliser la variante set_trace fournie avec Nose. Ajouter

 from nose.tools import set_trace; set_trace()
 

où que vous souhaitiez entrer dans le débogueur. La redirection stdin / out sera prise en charge pour vous. Le seul effet secondaire étrange que j'ai rencontré est l'impossibilité de redémarrer votre code à partir de pdb (avec run ) lors du débogage lors d'une analyse nasale.

122voto

Ned Batchelder Points 128913

Vous pouvez ajouter

 import pdb; pdb.set_trace() 
 

n'importe où dans votre source que vous souhaitez arrêter dans le débogueur.

Assurez-vous de passer -s au nez afin qu'il ne capture pas stdout .

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