hacer - python debugger gui
pdb.set_trace() que causa pruebas de bloqueo en el congelador, no cae al depurador (3)
Ejecute nose con la opción -s
/ --nocapture
y podrá ver el indicador de pdb e interactuar con el depurador normalmente.
Si usa la línea de comando, eso significa:
python manage.py test -s [other-opts-and-args]
Estoy ejecutando un conjunto de pruebas (archivos .py) usando pruebas de nos. Usando un clasico
import pdb; pdb.set_trace()
Las pruebas de detección simplemente nunca se completan. Simplemente se cuelga justo donde se ha establecido el punto de interrupción, pero nunca cae en el depurador pdb.
¿Alguna idea de por qué esto sería? He intentado mover el punto de interrupción a una serie de posiciones diferentes (otras funciones de prueba, otros archivos) en vano.
En mi caso, la bandera de la bandera -s / - nocapture, todavía no se resolvió y dejó caer el compilador en pdb.
Otra razón por la que podría investigar es si está utilizando una base de datos como MySQL como parte de sus pruebas, que no está bloqueada por otro proceso simultáneo. En mi caso, había iniciado un shell de Python para consultar la base de datos MySQL a través de SQL Alchemy y eso había bloqueado las tablas. Como resultado, mis pruebas de la nariz se colgaban, no corrían / salían.
Maté los procesos de python que estaban bloqueando las mesas y Nose estaba de nuevo olfateando
> $ ps auxww | grep python | awk ''{print $ 2}'' | sudo xargs kill -9
Nariz está capturando la salida y redirigiéndola. Entonces, el punto de quiebre es alcanzado, pero simplemente no lo ves. Debe desactivar la redirección de salida para que la salida de depuración aparezca en la pantalla.
Nariz puede hacer esto por ti, si usas:
from nose.tools import set_trace; set_trace()
en lugar de:
import pdb;pdb.set_trace()