Chronicle Chromium nr 18: pokrycie kodu Chromium

Odcinek 18: Veenita Joshi i Prakhar Asthana w Mountain View, Kalifornia (luty 2021 r.)
Poprzednie odcinki

Pokrycie testów mierzy, jaka część kodu źródłowego jest wykonywana podczas uruchamiania danego pakietu testów. Generowanie danych o pokryciu składa się z 3 głównych etapów: kompilowanie danych z użyciem narzędzi, zbieranie danych z prowadzonych testów instrumentalnych i ich późniejsze przetworzenie. Zespół ds. obsługi klienta ma narzędzia, które pozwalają zautomatyzować ten proces.

Skrypt Stanu może generować raporty o zasięgu kodu za pomocą 1 polecenia bez konieczności czekania na aktualizację interfejsu Gerrit. Ten skrypt jest obecnie obsługiwany w systemach Linux, Mac, iOS i ChromeOS.

Oto przykład użycia:

$ 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/

Spowoduje to utworzenie i uruchomienie crypto_unittests oraz url_unittests targets. W przypadku url_unittests uruchamiany jest tylko test URLParser.PathURL. Raport pokrycia jest przefiltrowany tak, aby zawierał tylko pliki i podkatalogi w sekcji url/ i crypto/. Oprócz automatyzacji procesu ten skrypt udostępnia dodatkowe funkcje umożliwiające wyświetlanie pokrycia kodu według katalogów i komponentów.

Zrzut ekranu przedstawiający dane wyjściowe skryptu pokrycia. Widok katalogu
Zrzut ekranu przedstawiający dane wyjściowe skryptu pokrycia. Widok komponentów

Narzędzie Zasięg kodu umożliwia podział kodu według katalogów i komponentów całej bazy kodu – w systemach Windows, iOS, Android, Linux i ChromeOS.

Podziel się opinią: skontaktuj się z operatorem code-coverage @ chromium.org lub zgłoś błąd na stronie crbug.com.

Zasoby