nosetests --pdb
déjeme detenerme en caso de error o falla, pero esto es demasiado tarde para mis necesidades. Pasar por el código durante la ejecución me ayuda a depurar dónde está el problema.
Sin embargo, las pruebas de nariz son útiles ya que permiten pruebas que dependen de importaciones relativas (es decir, pruebas en un paquete).
¿Cómo puedo establecer puntos de interrupción antes de que se ejecuten las pruebas? Actualmente estoy usando:
python -m pdb /path/to/my/nosetests testfile.py
Esta solución no es adecuada. Las pruebas de nariz interfieren con la salida de pdb y los controles de mi teclado (por ejemplo, las teclas de flecha) están rotos.
Usando import pdb; pdb.set_trace () parecería una buena idea, sin embargo nosetests está bloqueando mi acceso a la consola pdb.
from nose.tools import set_trace; set_trace()
Incluso mejor que recordar usar
-s
es usar laset_trace
variante que viene con Nose. Añadirdonde quiera ingresar al depurador. La redirección stdin / out se encargará de usted. El único efecto secundario extraño con el que me he encontrado es la imposibilidad de reiniciar su código desde dentro de pdb (usando
run
) mientras depuraba durante una ejecución nasal.fuente
pdb
corriendo? Estoy seguro de que hay documentos, pero en la parte superior de mi cabeza:s
"entra" en una llamada de función,n
va a la declaración "siguiente", seu
mueve "hacia arriba" en la pila yd
"hacia abajo". Puede utilizarb
para establecer puntos de interrupción yc
"continuar" y salir del depurador paso a paso. ¡Espero que ayude!Si tiene ipython , para una genialidad ilimitada, use:
* genialidad ilimitada: como ipython: autocompletar, colorear, etc.
fuente
Si está usando pytest , puede usar
Ver documentación .
fuente