为什么 gcovr 会生成空覆盖率统计信息?

Why does gcovr generate empty coverage statistics?

本文关键字:覆盖率 统计 信息 gcovr 为什么      更新时间:2023-10-16

我对如何使用gcov感到困惑。我有一个cmake项目,它有两个使用googletest的测试可执行文件。我已经将所需的标志添加到我的 cmake 脚本中:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -g -O0")

我重新编译了我的代码(使用 CLion 和 g++ 10.1(。

现在我切换到构建目录并手动运行两个测试套件。根据文档,这应该会生成一些可用于生成覆盖率报告的文件。现在我应该可以跑了

gcovr . 

从构建树的根(对吗?(,但是输出是这样的:

(base) ciaran@DESKTOP-K0APGUV:/mnt/d/libOmexMeta/cmake-build-release-wsl-ubuntu1804-gcc101$ gcovr .
------------------------------------------------------------------------------
GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
------------------------------------------------------------------------------
TOTAL                                          0       0    --%
------------------------------------------------------------------------------

知道我做错了什么吗?

#Edit 也在运行

gcovr -r . --html --html-details -o example-html-details.html

工作,但生成一个空报告

您必须提供源文件:

-r , --根

源文件的根目录。默认为".",即当前目录。相对于此根目录报告文件名。

如果您构建并用完源代码目录,则可能无法找到所需的内容。