Chromium Chronicle #18:Chromium 代码覆盖率

第 18 集:作者:Veenita Joshi 和 Prakhar Asthana,加利福尼亚州山景城(2021 年 2 月)
上一集

测试覆盖率衡量在特定测试套件运行时执行了多少源代码。生成覆盖率数据分为三个主要步骤:使用插桩进行编译、通过运行插桩测试收集数据以及对数据进行后处理。保修团队拥有可自动执行此流程的工具。

覆盖率脚本 只需一个命令即可生成代码覆盖率报告,而无需等待 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_unittestsurl_unittests targets。对于 url_unittests,它仅运行测试 URLParser.PathURL。系统会过滤覆盖率报告,使其仅包含 url/crypto/ 下的文件和子目录。除了自动执行流程之外,此脚本还提供其他功能,可让您按目录和组件查看代码覆盖率

覆盖率脚本输出的屏幕截图。 目录视图
覆盖率脚本输出的屏幕截图。 组件视图

“代码覆盖率”工具针对整个代码库(Windows、iOS、Android、Linux 和 ChromeOS)提供了按目录和组件细分的代码覆盖率数据。

分享您的反馈:请与 code-coverage @ chromium.org 联系或在 crbug.com 上提交 bug。

资源