Wenn Sie ein großes Projekt entwickeln, ist es möglich, versehentlich einige Teile des Codes zu vergessen, die getestet werden müssen. Coverage.py ist ein Python-Tool, das Ihnen dabei hilft.
Installation
Verwenden Sie nach Belieben pip oder easy_install
pip install coverage
Starten und Deinstallieren
Um ein Django-Projekt auszuführen, verwenden Sie den Befehl:
overage run --source='.' manage.py test the-app-you-want-to-test
Dieser Befehl füllt „.coverage“ aus, das sich in COVERAGE_FILE befindet, und dann können Sie die Ergebnisse oder den Bericht sehen. Wenn Sie die empfangenen Daten löschen müssen, verwenden Sie den Befehl:
coverage erase
Für eine Datei
Wenn Sie nur Python-Code testen möchten, müssen Sie Folgendes tun:
coverage run your_program.py arg1 arg2 arg3
Es gibt mehrere zusätzliche Optionen, die Sie sich unter
link
ansehen können.
Sie können mehr über Vorlagen erfahren
im Plugin-Bereich
.
Zeige Ergebnis
Wenn Sie Ergebnisse auf der Befehlszeile anzeigen möchten:
coverage report
Für klarere und bequemere Berichte:
coverage html
Um genau zu wissen, welcher Teil Ihres Codes von Tests abgedeckt wird, verwenden Sie den folgenden Befehl:
coverage annotate -d directory-where-to-put-annotated-files
Das Programm generiert dieselbe Quellcodedatei mit zusätzlicher Syntax:
- Eine Zeile mit ">" bedeutet, dass es ausgeführt wurde.
- Eine mit „!“ beginnende Zeile bedeutet, dass sie nicht ausgeführt wurde.
- Eine mit „-“ beginnende Zeile bedeutet, dass die Zeile aus der Versorgungsstatistik ausgeschlossen wurde.
Gute Abdeckung
Eine gute Abdeckung liegt in der Regel bei 90 %. Wenn das Ergebnis jedoch 100 % beträgt, kann dies ein schlechtes Signal sein, da es möglicherweise um die Abdeckung und nicht um die Qualität der Tests geht.
Einige Tipps:
- Achten Sie auf die Qualität Ihrer Tests.
- Verlangsamen Sie Ihre Entwicklergeschwindigkeit nicht um der Abdeckung willen.
- Verwenden Sie die Abdeckung, um nicht verifizierten Code zu finden und zu entscheiden, ob er eine Abdeckung verdient.
Code ausschließen
Manchmal müssen wir Code ausschließen, der keine Abdeckung benötigt. Es gibt mehrere Möglichkeiten:
- Auszuschließende und zu überspringende Dateien in .coveragerc angeben.
- Schreiben in eine Zeile des Kommentarblocks.
# pragma: no cover
Wenn Sie beispielsweise generierten Code von der Abdeckung ausschließen möchten, da er vom Generierungstool unterstützt werden muss:
def generated_code(): # pragma: no cover do_something()
Weitere Informationen unter Coverage.py-Dokumentation.