Meine Tests führen eindeutig jede Funktion aus, und es gibt auch keine ungenutzten Importe. Laut dem Coverage-Bericht wurden 62% des Codes jedoch nie in der folgenden Datei ausgeführt:
Kann jemand bitte darauf hinweisen, was ich falsch machen könnte?
So initiiere ich die Testsuite und die Abdeckung:
%Vor%Dies ist die dritte Frage in den FAQ von coverage.py :
F: Warum werden die Körper von Funktionen (oder Klassen) als ausgeführt angezeigt, aber die def Zeilen nicht?
Dies geschieht, weil die Abdeckung nach den Funktionen gestartet wird definiert. Die Definitionszeilen werden ohne Coverage ausgeführt Messung, dann wird die Überdeckung gestartet, dann wird die Funktion aufgerufen. Dies bedeutet, dass der Körper gemessen wird, aber die Definition der Funktion ist es nicht.
Um dies zu beheben, starten Sie die Berichterstattung früher. Wenn Sie die Befehlszeile zu verwenden Führen Sie Ihr Programm mit Abdeckung, dann wird Ihr gesamtes Programm sein überwacht. Wenn Sie die API verwenden, müssen Sie coverage.start () aufrufen. bevor Sie die Module importieren, die Ihre Funktionen definieren.
Am einfachsten führen Sie Ihre Tests unter Abdeckung durch:
%Vor%Ihr benutzerdefiniertes Testskript geht nicht viel weiter als das, was die Deckungsbefehlszeile tun würde. Es ist einfacher, einfach die Befehlszeile zu verwenden.
Tags und Links python testing flask coverage.py