nosetests --pdb
Lassen Sie mich bei Fehlern oder Misserfolgen anhalten, aber dies ist zu spät für meine Bedürfnisse. Das Durchlaufen des Codes während der Ausführung hilft mir beim Debuggen, wo das Problem liegt.
Nosetests sind jedoch hilfreich, da sie Tests ermöglichen, die auf relativen Importen beruhen (dh Tests in einem Paket).
Wie kann ich Haltepunkte setzen, bevor die Tests ausgeführt werden? Zur Zeit benutze ich:
python -m pdb /path/to/my/nosetests testfile.py
Diese Lösung ist nicht ausreichend. Nosetests stören die PDF-Ausgabe und meine Tastatursteuerelemente (z. B. Pfeiltasten) sind defekt.
Import pdb verwenden; pdb.set_trace () scheint eine gute Idee zu sein, jedoch blockiert nosetests meinen Zugriff auf die pdb-Konsole.
from nose.tools import set_trace; set_trace()
Noch besser als daran zu denken, die mit Nose gelieferte Variante
-s
zu verwendenset_trace
. Hinzufügenwo immer Sie in den Debugger einbrechen möchten. Die stdin / out-Weiterleitung wird für Sie erledigt. Der einzige seltsame Nebeneffekt, auf den ich gestoßen bin, ist die Unfähigkeit, Ihren Code innerhalb von pdb (using
run
) neu zu starten, während Sie während eines Nasenlaufs debuggen.quelle
pdb
läuft? Ich bin mir sicher, dass es Dokumente gibt, aber von oben nach unten -s
"tritt in einen Funktionsaufruf ein",n
geht zur "nächsten" Anweisung,u
bewegt den Stapel "nach oben" undd
bewegt sich nach unten. Sie könnenb
damit Haltepunkte setzenc
, "fortfahren" und den Stepping-Debugger beenden. Hoffentlich hilft das!Wenn Sie Ipython haben , verwenden Sie es für unbegrenzte Attraktivität:
* unbegrenzte Attraktivität: genau wie bei ipython - automatische Vervollständigung, Färbung usw.
quelle
Wenn Sie Pytest verwenden , können Sie verwenden
Siehe Dokumentation .
quelle