0

我对如何使用感到困惑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

有效,但生成一个空报告

4

1 回答 1

0

您必须提供源文件:

-r , --root

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

如果你构建并用完源目录,它可能无法找到它需要的东西。

于 2020-07-03T18:29:28.297 回答