45 Stimmen

Gibt es so etwas wie "autotest" für Python unittests?

Im Grunde genommen, Growl-Benachrichtigungen (oder andere Rückrufe), wenn Tests abbrechen oder bestehen. Gibt es so etwas?

Wenn nicht, sollte es ziemlich einfach zu schreiben sein.. Am einfachsten wäre es, wenn

  1. laufen. python-autotest myfile1.py myfile2.py etc.py
    • Überprüfen Sie, ob die zu überwachenden Dateien geändert wurden (möglicherweise nur, wenn sie gespeichert wurden).
    • Führen Sie alle Tests in diesen Dateien aus.
    • Wenn ein Test fehlschlägt, aber beim letzten Durchlauf bestanden wurde, wird ein "Growl Alert" erzeugt. Dasselbe gilt für Tests, die erst fehlschlagen und dann bestehen.
    • Warten Sie, und wiederholen Sie die Schritte 2-5.

Das Problem, das ich dabei sehe, ist, dass die Tests in einer anderen Datei stehen. Die einfache Lösung wäre, alle Tests nach jedem Speichern auszuführen aber bei langsameren Tests könnte dies länger dauern als die Zeit zwischen den Speichern und/oder viel CPU-Leistung verbrauchen etc.

Der beste Weg, es zu tun wäre, tatsächlich zu sehen, welche Bits des Codes geändert haben, wenn Funktion abc() geändert hat, nur Tests ausführen, die mit diesem interagieren. Das wäre zwar toll, aber ich denke, es wäre extrem komplex zu implementieren?

Zusammengefasst:

  • Gibt es so etwas wie das Ruby-Tool autotest (Teil des ZenTest-Paket ), aber für Python-Code?
  • Wie kann man überprüfen, welche Funktionen sich zwischen zwei Revisionen eines Skripts geändert haben?
  • Ist es möglich zu bestimmen, welche Funktionen ein Befehl aufrufen wird? (So etwas wie ein Reverse Traceback)

0 Stimmen

Ich glaube nicht, dass es möglich ist, richtig zu testen, wenn Sie nur Tests ausführen, die sich direkt auf die geänderte Funktion beziehen. Sie testen dann nicht, wie die Funktion mit dem Rest des Codes interagiert. Sie könnte beispielsweise den Test bestehen, aber in der Praxis versagen, weil sich ihr Verhalten auf subtile Weise geändert hat

1voto

Paul Punkte 2239

Sehen Sie sich pytddmon an. Hier ist eine Video-Demonstration, wie man es benutzt: http://pytddmon.org/?page_id=33

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X