Bazel 覆盖率 C++ 构建_coverage_report.data 为空

问题描述 投票:0回答:1
my-project
    ├── driver
    │       ├── BUILD
    │       ├── stm32f446re_gpio_driver.h
    │       ├── stm32f446re_gpio_driver.cpp
    ├── unit_test
    │       ├── BUILD
    │       ├── ut_gpio.cpp
    └── WORKSPACE

我有一个像上面这样的 bazel 构建结构,我正在尝试使用“bazel覆盖率”命令生成测试覆盖率。输出已通过,一切看起来都很好。但 _coverage_report.dat 为空,大小为 0。那么,我无法生成html文件。

bazel coverage //unit_test:ut_gpio --combined_report=lcov

我尝试将所有 srcs 文件和头文件放在同一个文件夹中,效果很好。但是当我分离到 /driver 文件夹和 /uni_test 文件夹时。它无法生成有效的coverage_report.dat。我错过了什么吗?为什么会出现这种情况?

环境:Ubuntu 18.04、Bazel 3.5.0、gcc 7.5.0

构建(单元测试):

构建(驱动程序):

c++ gcc code-coverage bazel
1个回答
-1
投票

您可以在cmd中设置

--instrumentation_filter="//driver[/:]"
,例如:

bazel coverage --combined_report=lcov --instrumentation_filter="//driver[/:]"  //unit_test:ut_gpio 
© www.soinside.com 2019 - 2024. All rights reserved.