我正在尝试在基于CMake的项目(包括多个目标)上获得代码覆盖率。

首先,我生成具有以下内容的gcno文件:

lcov -b . -d . -o coverage.output --capture --initial

* .gcno是在
build_dir/[target_dir]/CMakeFiles/[target_dir].dir

然后我运行我的测试,在其中生成* .gcna文件
build_dir/tests/CMakeFiles/[target_dir].dir

当我现在再次运行lcov时:
lcov -b . -d . -o coverage.output --capture

我收到以下错误:
Scanning . for .gcda files ...
Found 23 data files in .
Processing Base.dir/DateTools.cpp.gcda
geninfo: ERROR: build_gcov/tests/CMakeFiles/Base.dir/DateTools.cpp.gcno: could not open file

当我手动将* .gcno文件移动到生成* .gcda的目录时,它似乎可以工作。

谢谢你的帮助!!!

最佳答案

我已经弄清楚了如何在CMake中使用lcov并将所有内容捆绑在cmake module中。

10-08 05:37