Während des Coverage.py with Ned Batchelder Python & Test podcast, Brian und Ned kurz diskutiert, dass, wenn Sie mit einer Deckungssumme Tests ausführen müssen, es bevorzugt wird, zum Ausführen von Tests von coverage.py
Ausführung die coverage run
im Gegensatz zu einem Test Runner mit Abdeckung aufrufen. Warum ist das und was ist der Unterschied?Lauftests von coverage.py vs Laufe Abdeckung von Testläufer
Um etwas Kontext zu formulieren: zur Zeit verwende ich nose
Test Runner und führen die Tests mit Hilfe von nosetests
Kommandozeilen-Tool mit --with-coverage
option:
$ nosetests --with-coverage --cover-html
Soll ich es tun über die coverage run -m
stattdessen?
$ coverage run -m nose
$ coverage report
Ich weiß nicht, ob das korrekt ist (also schreibe ich es nicht als Antwort), aber meine Vermutung ist, dass wenn Sie direkt Berichterstattung verwenden, dann sind Sie besorgt mit Berichterstattung und Nase und Sie habe nicht die zusätzliche Abhängigkeit des Plugins. Weniger Kopplung und eine weniger zu verfolgende Version. – mwchase
"einen Test-Runner mit Coverage aufrufen" - Sie haben nicht explizit darüber gesprochen, über welchen Test-Runner Sie sprechen (und vielleicht waren sie auch nicht im Podcast - ich habe es nicht aufgelistet). Ich nehme an, mit dem Test-Runner-Fall vertrautest du dem Testläufer, die Abdeckungsmaschinerie zur richtigen Zeit zu starten (z. B. vor dem Importieren des Testmaterials). Wenn Sie die Abdeckung direkt aufrufen, wissen Sie, dass alles so eingerichtet ist, dass die Abdeckung von Anfang an verwendet wird und jede Zeile so verfolgt wird, wie Sie es wünschen. – mgilson