首页 > 解决方案 > Chromium Coverage 脚本 - 生成 HTML 时出错

问题描述

我在这里参考说明:https ://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/testing/code_coverage.md#coverage-dashboard

$ gn gen out/coverage \
    --args="use_clang_coverage=true is_component_build=false
    dcheck_always_on=true is_debug=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/

运行第一条指令工作正常。运行第二个会导致以下错误跟踪:

2021-05-11 15:22:05,961 INFO] Building ['crypto_unittests', 'url_unittests'].
ninja: Entering directory `/home/xxx/chromium/chromium/src/out/coverage'
ninja: no work to do.
[2021-05-11 15:22:09,105 INFO] Running command: "out/coverage/crypto_unittests", the output is redirected to "/home/xxx/chromium/chromium/src/out/report/linux/logs/crypto_unittests_output.log".
[2021-05-11 15:22:09,319 INFO] Creating target profile data file.
[2021-05-11 15:22:09,741 INFO] Target "crypto_unittests" profile data is created as: "/home/xxx/chromium/chromium/src/out/report/crypto_unittests.profdata".
[2021-05-11 15:22:09,743 INFO] Running command: "out/coverage/url_unittests --gtest_filter=URLParser.PathURL", the output is redirected to "/home/xxx/chromium/chromium/src/out/report/linux/logs/url_unittests_output.log".
[2021-05-11 15:22:09,779 INFO] Creating target profile data file.
[2021-05-11 15:22:10,194 INFO] Target "url_unittests" profile data is created as: "/home/xxx/chromium/chromium/src/out/report/url_unittests.profdata".
[2021-05-11 15:22:10,196 INFO] Creating the coverage profile data file.
[2021-05-11 15:22:10,220 INFO] Code coverage profile data is created as: "/home/xxx/chromium/chromium/src/out/report/linux/coverage.profdata".
[2021-05-11 15:22:10,221 INFO] Finding shared libraries for targets (if any).
[2021-05-11 15:22:10,228 INFO] Finished finding shared libraries for targets.
[2021-05-11 15:22:10,228 INFO] Generating code coverage report in html (this can take a while depending on size of target!).
warning: 2 functions have mismatched data
warning: 2 functions have mismatched data
[2021-05-11 15:22:13,228 ERROR] Default coverage report dir does not exist: /home/xxx/chromium/chromium/src/out/report/coverage.
Traceback (most recent call last):
  File "tools/code_coverage/coverage.py", line 1106, in <module>
    sys.exit(Main())
  File "tools/code_coverage/coverage.py", line 1102, in Main
    processor.PrepareHtmlReport()
  File "/home/xxx/chromium/chromium/src/tools/code_coverage/coverage_utils.py", line 572, in PrepareHtmlReport
    self.RenameDefaultCoverageDirectory()
  File "/home/xxx/chromium/chromium/src/tools/code_coverage/coverage_utils.py", line 556, in RenameDefaultCoverageDirectory
    MergeTwoDirectories(default_report_subdir_path, self.report_root_dir)
  File "/home/xxx/chromium/chromium/src/tools/code_coverage/coverage_utils.py", line 727, in MergeTwoDirectories
    for filename in os.listdir(src_dir_path):
OSError: [Errno 2] No such file or directory: '/home/xxx/chromium/chromium/src/out/report/coverage'

使用 gn gen out/Default 编译 Chromium 可以正常工作。有什么建议么?系统:Ubuntu 20.04

最好的祝愿

标签: code-coveragechromiumubuntu-20.04coverage.py

解决方案


推荐阅读