Ich habe gerade angefangen, einige Komponententests für ein Python-Projekt zu schreiben, das ich mit Unittest und Coverage verwende. Ich bin derzeit nur einen kleinen Teil zu testen, aber die Code-Coverage-Python Einheit Testabdeckung
ich meine Tests ausführen, um herauszufinden versuchen und erhalten die Abdeckung mit dem folgenden
python -m unittest discover -s tests/
coverage run -m unittest discover -s tests/
coverage report -m
Das Problem Ich bin mit ist, dass die Berichterstattung ist sage ich 44% Code Coverage haben und Zählen nur die Dateien, dass:
- in den Unit-Tests getestet wurden (alle Dateien, die nicht getestet wurden, fehlen und nicht in der Gesamtabdeckung) in der
- waren Bibliothek ies in der virtuellen Umgebung und Codeabdeckung der eigentlichen Tests. Sicherlich sollte es nicht die tatsächlichen Tests in den Ergebnissen enthalten?
Außerdem sagt es die Dateien, die nur die ersten paar Zeilen getestet haben in diesen Unit-Tests tatsächlich getestet werden (die die Import-Anweisungen in den meisten Fällen)
Wie kann ich einen realistischere Code Coverage erhalten oder ist es so, wie es sein soll?
Danke, das funktioniert für mich! 'coverage run --source = {dir} -m unittest discover -s tests /' deckt {dir} ab. Kann ich aber fragen: Wie wäre es mit den Unterverzeichnissen (rekursiv)? – sunyata
Ich habe festgestellt, dass es möglich ist, mehrere Verzeichnisse/Module zu verwenden: '--source = {dir1}, {dir2}, {etc}' (bitte beachten Sie, dass hinter den Kommazeichen kein Leerzeichen steht). Es wäre dennoch nützlich mit einer rekursiven Option, wenn diese verfügbar ist, wenn neue Module zum Quellcode hinzugefügt werden. – sunyata
Dokumentation: [Coverage.py Befehlszeilenverwendung] (https://coverage.readthedocs.io/en/latest/ cmd.html) – sunyata