Flask Testing - Warum schließt die Abdeckung Importanweisungen und Dekoratoren aus?

8

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%     
Marlyyy 04.04.2015, 17:19
quelle

1 Antwort

7

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.

    
Ned Batchelder 05.04.2015, 02:23
quelle

Tags und Links