Estoy usando pytest para mi suite de pruebas. Mientras detecta errores en pruebas complejas entre componentes, me gustaría colocarlo import ipdb; ipdb.set_trace()
en el medio de mi código para permitirme depurarlo.
Sin embargo, dado que pytest atrapa sys.stdin / sys.stdout ipdb falla. ¿Cómo puedo usar ipdb mientras pruebo con pytest.
No me interesa saltar a pdb o ipdb después de una falla, sino colocar interrupciones en cualquier parte del código y poder depurarlo allí antes de que ocurra la falla.
addopts = -s
alpytest.ini
archivo.Lamentablemente, pytest-ipdb ya no es compatible.
La solución es correr
pytest my_test.py --pdb --pdbcls=IPython.terminal.debugger:Pdb
Desde el comando de ayuda:
La diferencia es solo que TerminalPdb parece arrojar errores, pero Pdb no ( documentos Ipython ).
fuente
TerminalPdb
está funcionando de nuevo y es la solución preferida, ya que le permitirá completar la pestaña.Esto es lo que yo uso
py.test tests/ --pdbcls=IPython.core.debugger:Pdb -s
fuente
A partir de 2019-11, esto es lo que debería solucionarlo:
fuente
prompt-toolkit
versión,2.0.10
entonces ipdb funcionará bien nuevamente, porque se rompe debido a la actualización reciente de este paquete a 3.0.0