Was ist Coverage.py?
Coverage.py ist ein leistungsstarkes Tool zur Analyse der Codeabdeckung durch Tests in Python. Es hilft Entwicklern zu ermitteln, welche Teile ihres Codes während der Tests ausgeführt wurden und welche ungenutzt blieben. Dieses Tool ist ein wesentlicher Bestandteil des Qualitätssicherungsprozesses und deckt potenzielle Lücken in der Testabdeckung auf.
Das Hauptziel von Coverage.py ist es, detaillierte Informationen darüber zu liefern, wie vollständig Ihre Tests den geschriebenen Code abdecken. Das Tool analysiert die Programmausführung und erstellt Berichte, die den Abdeckungsgrad für jede Datei, jedes Modul oder sogar einzelne Codezeilen anzeigen.
Schlüsselfunktionen von Coverage.py
Coverage.py bietet eine breite Palette von Funktionen zur Analyse der Codeabdeckung:
Zeilenabdeckung messen — die Basisfunktion, die verfolgt, welche Codezeilen während der Tests ausgeführt wurden.
Branch-Analyse — eine erweiterte Funktion, die prüft, ob alle möglichen Ausführungspfade in Bedingungen (if, elif, else) durchlaufen wurden.
Berichte generieren — Erstellung detaillierter Berichte in verschiedenen Formaten: Text, HTML, XML, JSON.
Framework-Integration — nahtlose Zusammenarbeit mit gängigen Test-Frameworks wie pytest, unittest und nose.
Ausschlussregeln — die Möglichkeit, bestimmte Dateien, Ordner oder Zeilen von der Abdeckungsanalyse auszuschließen.
Installation und erste Einrichtung
Standardinstallation
Installieren Sie Coverage.py mit pip:
pip install coverage
Installation mit Zusatzfunktionen
Wenn Sie mit pytest arbeiten, empfiehlt sich die Installation des Plugins pytest-cov:
pip install pytest-cov
Für die Arbeit mit TOML-Konfigurationsdateien:
pip install coverage[toml]
Installation prüfen
Überprüfen Sie nach der Installation, ob Coverage.py korrekt funktioniert:
coverage --version
Wichtige Befehle und ihre Verwendung
Abdeckungsanalyse starten
Grundlegender Start der Abdeckungsanalyse für ein Python-Skript:
coverage run my_script.py
Starten mit zusätzlichen Parametern:
coverage run --source=my_package my_script.py
Starten mit dem unittest-Modul
coverage run -m unittest discover
Starten mit pytest
coverage run -m pytest
Oder mit pytest-cov:
pytest --cov=my_module tests/
Abdeckungsbericht anzeigen
Textbericht im Terminal
coverage report
Beispielausgabe:
Name Stmts Miss Cover
----------------------------------------
my_module.py 25 3 88%
utils.py 15 0 100%
main.py 20 5 75%
----------------------------------------
TOTAL 60 8 87%
Detailbericht mit fehlenden Zeilen
coverage report --show-missing
HTML-Bericht
coverage html
Öffnen Sie nach der Ausführung die Datei htmlcov/index.html im Browser, um den interaktiven Bericht anzuzeigen.
XML-Bericht für CI/CD
coverage xml
JSON-Bericht
coverage json
Abdeckungsdaten verwalten
Daten löschen
Auch in der Bibliothek
ORM für C++: Vergleich und Anwendungsbeispiele
WebSocket-Bibliotheken für Swift: Starscream und URLSessionWebSocketTask
CLI-Frameworks für C# (.NET): Erstellung von Konsolenanwendungen
Maschinelles Lernen mit Go: Überblick über Bibliotheken und Frameworks (Golang)
WebSocket-Bibliotheken für C++: Überblick und Anwendungsbeispiele
Empfehlungen