Chromium Chronicle n.o 18: Cobertura de código de Chromium

Episodio 18: de Veenita Joshi y Prakhar Asthana en Mountain View, California (febrero de 2021)
Episodios anteriores

La cobertura de pruebas mide cuánto código fuente se ejecuta cuando se ejecuta un conjunto de pruebas en particular. La generación de datos de cobertura consta de tres pasos principales: compilar con instrumentación, recopilar datos a partir de la ejecución de pruebas instrumentadas y realizar un procesamiento posterior de los datos. El equipo de cobertura tiene herramientas para automatizar este proceso.

La secuencia de comandos de cobertura puede generar informes de cobertura de código en un solo comando, sin esperar a que se actualice la IU de Gerrit. Actualmente, esta secuencia de comandos es compatible con Linux, Mac, iOS y ChromeOS.

Este es un ejemplo de uso:

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

Esto compila y ejecuta crypto_unittests y url_unittests targets. Para url_unittests, solo ejecuta la prueba URLParser.PathURL. El informe de cobertura se filtra para incluir solo los archivos y subdirectorios en url/ y crypto/. Además de automatizar el proceso, esta secuencia de comandos proporciona funciones adicionales para ver la cobertura de código por directorios y componentes.

Captura de pantalla del resultado de la secuencia de comandos de cobertura.Vista de directorio
Captura de pantalla del resultado de la secuencia de comandos de cobertura.Vista de componentes

La herramienta de cobertura de código proporciona un desglose de la cobertura de código por directorio y componente para toda la base de código en Windows, iOS, Android, Linux y ChromeOS.

Comparte tus comentarios: Comunícate con code-coverage @ chromium.org o informa un error en crbug.com.

Recursos