Grundsätzlich Growl Benachrichtigungen (oder andere Rückrufe), wenn Tests brechen oder bestehen. Gibt es so etwas?Gibt es etwas wie "Autotest" für Python-Unittests?
Wenn nicht, sollte es ziemlich einfach zu schreiben .. Der einfachste Weg python-autotest myfile1.py myfile2.py etc.py
- Überprüfen ..
- laufen würde, wenn Dateien-zu-sein-überwacht modifiziert wurden (möglicherweise nur, wenn sie gespeichert wurden).
- Führen Sie alle Tests in diesen Dateien aus.
- Wenn ein Test fehlschlägt, aber im vorherigen Durchlauf bestanden wurde, generieren Sie einen Growl-Alarm. Gleiches gilt für Tests, die fehlschlagen und dann bestanden werden.
- Warten Sie, und wiederholen Sie die Schritte 2-5.
Das Problem, das ich sehen kann, gibt es, wenn die Tests in einer anderen Datei sind. Die einfache Lösung wäre, alle Tests nach jedem Speichern auszuführen, aber mit langsameren Tests könnte dies länger als die Zeit zwischen den Speicherungen dauern und/oder könnte viel CPU-Leistung usw. verbrauchen.
Der beste Weg zu tun wäre es zu sehen, welche Bits des Codes sich geändert haben, wenn sich die Funktion abc() geändert hat, nur Tests laufen lassen, die damit interagieren. Das wäre zwar großartig, aber ich denke, es wäre extrem komplex zu implementieren?
Fassen wir zusammen:
- Gibt es so etwas wie die Ruby-Tool
autotest
(Teil des ZenTest package), aber für Python-Code? - Wie überprüfen Sie, welche Funktionen zwischen zwei Revisionen eines Skripts geändert haben?
- Ist es möglich zu bestimmen, welche Funktionen ein Befehl aufrufen wird? (Etwas wie ein umgekehrtes Traceback)
Ich glaube nicht, dass es möglich ist, richtig zu testen, wenn Sie nur Tests ausführen, die direkt auf die geänderte Funktion verweisen. Sie werden dann nicht testen, wie die Funktion mit dem Rest des Codes interagiert. Zum Beispiel könnte es den Test bestehen, aber in der Praxis scheitern, weil sein Verhalten auf subtile Weise geändert – freespace
Hmm, guter Punkt .. – dbr