nosetests --pdb
laissez-moi m'arrêter en cas d'erreur ou d'échec, mais c'est trop tard pour mes besoins. Parcourir le code pendant l'exécution m'aide à déboguer où se situe le problème.
Cependant, nosetests sont utiles car ils permettent des tests qui reposent sur des importations relatives (c'est-à-dire des tests dans un package).
Comment puis-je définir des points d'arrêt avant l'exécution des tests? J'utilise actuellement:
python -m pdb /path/to/my/nosetests testfile.py
Cette solution n'est pas adéquate. Nosetests interfèrent avec la sortie pdb et mes commandes de clavier (par exemple les touches fléchées) sont cassées.
Utilisation de l'importation pdb; pdb.set_trace () semble être une bonne idée, cependant nosetests bloque mon accès à la console pdb.
from nose.tools import set_trace; set_trace()
Mieux encore que de ne pas oublier d'utiliser
-s
est d'utiliser laset_trace
variante fournie avec Nose. Ajouteroù vous souhaitez vous connecter au débogueur. La redirection stdin / out sera prise en charge pour vous. Le seul effet secondaire étrange que j'ai rencontré est l'incapacité de redémarrer votre code à partir de pdb (en utilisant
run
) lors du débogage lors d'une course de nez.la source
pdb
couru? Je suis sûr qu'il y a des documents, mais du haut de ma tête -s
"entre dans" un appel de fonction,n
va à l'instruction "suivante",u
déplace "vers le haut" la pile etd
se déplace "vers le bas". Vous pouvez utiliserb
pour définir des points d'arrêt etc
pour "continuer" et quitter le débogueur pas à pas. J'espère que cela pourra aider!Si vous avez ipython , pour une utilisation illimitée:
* génialité illimitée: tout comme ipython - auto-complétion, coloration, etc.
la source
Si vous utilisez pytest , vous pouvez utiliser
Consultez la documentation .
la source