Хроника Chromium #18: Покрытие кода Chromium

Эпизод 18: Винита Джоши и Прахар Астана, Маунтин-Вью, Калифорния (февраль 2021 г.)
Предыдущие серии

Покрытие тестами измеряет, сколько исходного кода выполняется при запуске определенного набора тестов. Создание данных о покрытии состоит из трех основных этапов: компиляция с помощью инструментов, сбор данных в ходе инструментальных тестов и последующая обработка данных. У команды покрытия есть инструменты для автоматизации этого процесса.

Скрипт Coverage может генерировать отчеты о покрытии кода всего одной командой , не дожидаясь обновления пользовательского интерфейса Gerrit . Этот скрипт в настоящее время поддерживается в Linux, Mac, iOS и ChromeOS.

Вот пример использования:

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

Это создает и запускает цели crypto_unittests и url_unittests targets . Для url_unittests выполняется только тест URLParser.PathURL . Отчет о покрытии фильтруется и включает только файлы и подкаталоги в каталогах url/ и crypto/ . Помимо автоматизации процесса, этот скрипт предоставляет дополнительные возможности для просмотра покрытия кода по каталогам и компонентам .

Скриншот вывода скрипта покрытия. Просмотр каталога
Скриншот вывода скрипта покрытия. Вид компонента

Инструмент Code Coverage обеспечивает разбивку покрытия кода по каталогам и компонентам для всей базы кода для Windows, iOS, Android, Linux и ChromeOS.

Поделитесь своим отзывом: свяжитесь с code-coverage @ chromium.org или сообщите об ошибке на crbug.com .

Ресурсы