2017-05-26 1 views
2

Wie kann ich lcov und genhtml Dateien zeigen, die nicht verknüpft/geladen sind? Ich benutze es, um die Testabdeckung anzuzeigen, und ich möchte, dass jede Quelldatei im HTML-Bericht angezeigt wird, auch wenn sie keine Abdeckung hat. Auf diese Weise kann ich mit lcov Quelldateien identifizieren, denen Tests fehlen. Für die fehlenden Quelldateien wurde eine .gcno-Datei erstellt, jedoch keine .gcda-Datei.Kann lcov/genhtml Dateien anzeigen, die nie ausgeführt wurden?

+0

Können Sie einen minimalen Beispielcode angeben, der dieses Verhalten repliziert? – AmeyaVS

Antwort

3

Wenn Sie alle Dateien anzeigen möchten, müssen Sie eine Baseline-Coverage-Datendatei mit der Option -i erstellen. Nachdem Sie Ihre Daten erfasst haben, müssen Sie die beiden Dateien mit der Option -a kombinieren.

Es gibt ein Beispiel in lcov Manpage (https://linux.die.net/man/1/lcov):

Capture-Erstnullabgleich Abdeckungsdaten.

Führen Sie lcov mit -c und dieser Option in den Verzeichnissen mit den Dateien .bb, .bbg oder .gcno aus, bevor Sie einen Testfall ausführen. Das Ergebnis ist eine "Baseline" -Deckungsdatendatei, die für jede instrumentierte Linie eine Abdeckung von null enthält. Kombinieren Sie diese Datendatei (mit lcov -a) mit Coverage-Datendateien, die nach einem Testlauf erfasst wurden, um sicherzustellen, dass der Prozentsatz der insgesamt erfassten Zeilen korrekt ist, auch wenn nicht alle Quellcodedateien während des Tests geladen wurden.

Empfohlene Verfahren, wenn Daten für einen Testfall erfassen:

  1. erstellen Baseline Abdeckung Datendatei

    lcov -c -i -d appdir -o app_base.info

  2. durchführen Test

    appdir/test

  3. Testabdeckung Datendatei erstellen

    lcov -c -d appdir -o app_test.info

  4. kombinieren Basislinie und Testabdeckung Daten

    lcov -a app_base.info -a app_test.info -o app_total .info

Sie müssen dann für GenHTML die app_total.info als Quelle verwenden.

Verwandte Themen