Chromium Chronicle Nr. 18: Chromium-Codeabdeckung

Folge 18:von Veenita Joshi und Prakhar Asthana in Mountain View, Kalifornien (Februar 2021)
Vorherige Folgen

Die Testabdeckung misst, wie viel Quellcode ausgeführt wird, wenn eine bestimmte Testsuite ausgeführt wird. Das Generieren von Abdeckungsdaten umfasst drei Hauptschritte: Kompilieren mit Instrumentierung, Erfassen von Daten aus den ausgeführten instrumentierten Tests und Nachverarbeitung der Daten. Das Deckungsteam verfügt über Tools, um diesen Prozess zu automatisieren.

Mit dem Abdeckungsskript können Sie mit nur einem Befehl Berichte zur Codeabdeckung generieren, ohne auf die Aktualisierung der Raster-UI warten zu müssen. Dieses Skript wird derzeit unter Linux, Mac, iOS und ChromeOS unterstützt.

Siehe folgende Beispielverwendung:

$ gn gen out/coverage \
    --args='use_clang_coverage=true is_component_build=false'
$ python tools/code_coverage/coverage.py \
    crypto_unittests url_unittests \
    -b out/coverage -o out/report \
    -c 'out/coverage/crypto_unittests' \
    -c 'out/coverage/url_unittests --gtest_filter=URLParser.PathURL' \
    -f url/ -f crypto/

Dadurch werden crypto_unittests und url_unittests targets erstellt und ausgeführt. Für url_unittests wird nur der Test URLParser.PathURL ausgeführt. Der Abdeckungsbericht wird so gefiltert, dass er nur Dateien und Unterverzeichnisse unter url/ und crypto/ enthält. Neben der Automatisierung des Prozesses bietet dieses Skript zusätzliche Funktionen, um die Codeabdeckung nach Verzeichnissen und Komponenten anzusehen.

Screenshot der Ausgabe des Abdeckungsskripts. Verzeichnisansicht
Screenshot der Ausgabe des Abdeckungsskripts. Komponentenansicht

Das Codeabdeckungstool bietet eine Aufschlüsselung der Codeabdeckung nach Verzeichnis und Komponente für die gesamte Codebasis unter Windows, iOS, Android, Linux und ChromeOS.

Feedback geben:Wenden Sie sich an code-coverage @ chromium.org oder melden Sie einen Fehler auf crbug.com.

Ressourcen