Frage

Ich bin eine Art Neuling mit python-unit-Tests, und vor allem coverage.py.Ist es wünschenswert, coverage-Berichte umfassen die Abdeckung Ihres eigentlichen test-Dateien?

Hier ist ein screenshot von meinem HTML-Bericht als ein Beispiel.

Sie können sehen, dass der Bericht enthält tests/test_credit_card.Zuerst war ich versucht weglassen tests/ Verzeichnis von berichten, der wie so:

coverage html --omit=tests/ -d tests/coverage

Ich habe versucht, mehrere Varianten des Befehls, aber ich konnte nicht für das Leben von mir bekommen, das tests ausgeschlossen.Nach der Niederlage zu akzeptieren, begann ich mich zu Fragen, ob vielleicht die test-Dateien soll werden in den Bericht aufgenommen.

Kann jemand etwas Licht in diese Schuppen?

War es hilfreich?

Lösung

  

Edit: Ich glaube, ich jetzt mit dem Kommentar unten einig darüber nicht gut zu sein   Idee, einen Test Ihres Produktionscode mit einem Test des Tests zu mischen   Code. Ich kann nicht eine akzeptierte Antwort löschen, damit ich es unverändert lassen würde.

     

** Bitte downvote meine Antwort! **


Es ist eine gute Idee, um die Berichterstattung über die Tests, um zu sehen, wie es zu Problemen verweisen. Wenn Ihr Test-Code wird nicht ausgeführt, dann war es nicht viel Sinn es in schriftlicher Form!

Der, den ich immer erhalten ist, wenn ich zwei Unit-Test-Funktionen den gleichen Namen geben - ich einen neuen Test mehrere Monate nach dem ursprünglichen hinzufügen und nur zufällig den gleichen Namen wählen. Die Unittest Rahmen wird nicht darüber beschweren - eine der Funktionen der anderen versteckt und es wird nicht nur einer der Tests laufen! Der detaillierte Berichterstattung Bericht zeigt das Problem sofort though.

Wenn Sie einen anderen Code in Ihren Tests, die dann nicht ausgeführt wird, die auch auf andere Bugs hinweisen, obwohl in der Regel oft gibt es ein paar Zeilen von vorformulierten Code, der nicht auf bekommen abgedeckt je könnte, wie die Tests erhalten aufgerufen, so sei sie besessen nicht etwa zu 100% zu bekommen.

Und wenn Sie Testcode haben, die wirklich nicht mehr benötigt wird, dann ist es immer gut ist, zu löschen!

Andere Tipps

coverage html --omit="*/test*" -d tests/coverage

Erstellen .coveragerc Datei in Ihrem Projektstammordner, und umfassen die folgenden:

[run]
omit = *tests*

Sie können auch explizit angeben, in welchem Verzeichnis ist der code, den Sie wollen Abdeckung auf, statt zu sagen, die Dinge weglassen.In einem .coveragerc Datei, wenn der Ordner von Interesse ist, genannt demo, dies sieht aus wie

[run]
source = demo
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top