Ich benutze py.test für das Unit-Testen meines Python-Programms. Ich möchte meinen Testcode mit dem Python-Debugger auf normale Weise debuggen (womit ich pdb.set_trace() im Code meine), aber ich kann es nicht funktionieren lassen.Kann ich mit Python Debugger debuggen, wenn Sie py.test irgendwie benutzen?
Putd pdb.set_trace() in den Code funktioniert nicht (löst IOError: Lesen von Stdin, während die Ausgabe erfasst wird). Ich habe auch versucht, py.test mit der Option --pdb auszuführen, aber das scheint nicht der Trick zu sein, wenn ich herausfinden möchte, was vor meiner Behauptung passiert. Es bricht ab, wenn eine Assertion fehlschlägt, und das Fortfahren von dieser Zeile bedeutet das Beenden des Programms.
Kennt jemand eine Möglichkeit, Debuggen zu bekommen, oder ist Debugging und py.test nur nicht zusammen gedacht?
Peter, danke für Ihre Vorschläge. Die Alternative python -m pdb führt mich durch das Skript, ruft aber nicht die Funktionen auf. Obwohl es für meine Python-Entwicklung nützlich ist, sehe ich nicht, wie ich das funktionieren lassen kann. Ich erwähnte die Option --pdb, aber wenn jemand nicht daran denken kann, wie man es benutzt, kann ich auch nicht weiter damit gehen. – Joel
Ich schlage vor, das Handbuch auf pdb zu lesen und die Tastenanschläge zu lernen. pdb wird die Funktion drucken, die als nächstes ausgeführt wird. Wenn Sie "s" eingeben, treten Sie in diese Funktion ein. Wenn Sie "n" eingeben, was der Standard ist, gehen Sie einfach zur nächsten Codezeile.Es ist sehr wahrscheinlich, dass Sie "n" statt "s" drücken, wenn Sie in Ihre "Haupt" -Routine treten wollen. –
So funktioniert py.test nicht. Kleiner, aber gültiger Prüfcode für py.test: def test_arithmetik: assert 2 + 2 == 4 Das reicht für einen Komponententest. Keine "Haupt" -Routine, nur eine Funktion, die mit "test_" beginnt. Wenn Sie das mit normalem Python ausführen, würde es test_arithmetic nur definieren, nicht ausführen. Aber py.test findet Funktionen, die mit test_ beginnen, und führt sie für mich aus, kümmert sich um fehlgeschlagene Behauptungen usw. – Joel