nosetests --pdb
deixe-me parar em caso de erro ou falha, mas é tarde demais para minhas necessidades. Percorrer o código durante a execução me ajuda a depurar onde está o problema.
No entanto, nosetests são úteis, pois permitem testes que dependem de importações relativas (ou seja, testes em um pacote).
Como posso definir pontos de interrupção antes que os testes sejam executados? Atualmente estou usando:
python -m pdb /path/to/my/nosetests testfile.py
Esta solução não é adequada. Nosetests interferem com a saída PDB e os controles do meu teclado (por exemplo, teclas de seta) estão quebrados.
Usando import pdb; pdb.set_trace () parece uma boa idéia, entretanto nosetests está bloqueando meu acesso ao console PDB.
from nose.tools import set_trace; set_trace()
Ainda melhor do que lembrar de usar
-s
é usar aset_trace
variante que vem com o Nose. Adicionaronde você quiser entrar no depurador. O redirecionamento stdin / out será feito para você. O único efeito colateral estranho que encontrei é a incapacidade de reiniciar seu código de dentro do pdb (usando
run
) durante a depuração durante uma corrida pelo nariz.fonte
pdb
correr? Tenho certeza de que há documentos, mas no topo da minha cabeça-s
"entra em" uma chamada de função,n
vai para a instrução "próxima",u
move "para cima" na pilha ed
move "para baixo". Você pode usarb
para definir pontos de interrupção ec
"continuar" e sair do depurador de revisão. Espero que ajude!Se você tiver ipython , para uso de grandiosidade ilimitada:
* maravilha ilimitada: assim como ipython - preenchimento automático, coloração etc.
fonte
Se você estiver usando o pytest , você pode usar
Veja a documentação .
fonte