运行gcovr命令后,无法生成代码覆盖率,也无法从子目录中删除.gcda
Unable to generate code coverage and also .gcda deleted from sub directories after running gcovr command
我在代码覆盖率方面面临以下问题:
- 详细的html文件不是为.cpp文件生成的有.gcno和.gcda对应项
- 运行gcovr命令后,gcda文件自动被删除
我遵循了以下步骤:
- .gcno是在我使用-fprofile arcs编译代码时生成的-ftest覆盖选项并与-lgcov选项链接
- 我运行了可执行文件来生成.gcda文件
- 我将.gcno和.gcda文件复制到了我的源代码
- 我从顶部目录运行了gcovr命令(如下所述)其具有进一步包含.cpp文件的子目录
- 将生成coverage.html,其中包含有关其他html报告,但当我打开它们时,它们是空白的
- 我试过在不同的地方运行gcovr,比如从根目录或子目录
、gcno和.gcda文件所在的目录为:D: \RTC_Latest_GTEST\RTC_21_11_18\software\output_GTEST\Application\contents\Application_name
执行gcovr命令的目录为:D: \RTC_Latest_GTEST\RTC_21_11_18\software\Application\contents\Application_name
目前我正在Application_name文件夹中运行gcovr命令。
我运行以下命令为我的代码生成深度html报告:
python.exe c:\Python27\gcovr --exclude-unreachable-branches -b -r . -d --html --html-details -o coverage.html
预期结果:
- 实际结果将以html格式提供详细的覆盖率报告具有相应.gcda和.gcno的每个.cpp文件的格式对应物
- .gcda和.gcno文件将出现在子目录中在运行gcovr命令之后
生成HTML覆盖率报告
-->.gcda文件由于-d选项而被删除,正如@amon在评论中所说的那样。
-->以下是我用于生成覆盖率报告的命令,我正在Application_name目录中运行此命令::
gcovr-r--html--html details-o coverage.html--对象目录=../../..///output_gtest//应用程序//内容//应用程序名称
-->我在上面提到的命令中做了以下修改:
1) --对象目录,在这里我添加了.gcda和.gcno文件所在的路径。
2) 我使用的是过时版本的gcovr,因为我无法生成覆盖率报告,所以我更新了我的gcovr版本。以下链接中提到了相同的步骤::
https://gcovr.com/installation.html
相关文章:
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 我怎样才能将所有子目录与 cmake 自动匹配
- 使文件夹中的所有文件可供所有项目(子目录)访问
- 从所有列出的文件和子目录中更改目录
- 子目录之间的 CMAKE 共享变量
- CMake:为什么added_subdirectory对其他子目录不可见
- 获取每个目录或子目录中第一个文件的路径
- Qt创建者:加载位于子目录中的项目文件
- CMake:防止在子目录库项目中生成测试可执行目标
- 遍历目录及其子目录
- 处理多个子目录中的 Makefile 依赖项并输出到单独的子目录
- 如何在子目录中创建文本文件?
- CLR dll 无法运行托管 DLL,除非它位于 exe 目录(或其子目录)内
- CMake:如何更改子目录项目目标的属性?
- Makefile在Linux中工作,但在Windows下不起作用,在子目录中找不到文件
- 在子目录中调用target_link_libraries的替代方法
- gitignore 模式,包括具有特定子目录的所有目录
- 测试执行后缺少某些GCDA文件
- 运行gcovr命令后,无法生成代码覆盖率,也无法从子目录中删除.gcda