问题标签 [gcovr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为多个 cpp 文件生成 GCOV 报告
我在一个文件夹中有 3 个文件。one.cpp
,one.hpp
和main.cpp
. one.hpp
有一个类声明。one.cpp
在同一个命名空间下的类中定义了函数。我从 main 中的类调用函数并包括one.hpp
在 main 中。如何使用 gcov 编译和运行所有这些文件以生成覆盖率?
我尝试生成单独的目标文件并创建一个可执行文件。没用
c - 当两个可执行文件为同一个源文件运行时,.gcda 文件覆盖率信息没有得到更新
共有三个文件u1.c , u2.c 和 common.c
ut1.c 的内容
ut2.c 的内容
common.c的内容
编译步骤:-
执行步骤:-
现在,当运行gcov common.c时,只有 fun2 覆盖范围即将到来。
c++ - 使用 CMake 为 gcov 配置合适的目标
我已按照此链接(https://jhbell.com/using-cmake-and-gcov)将 gcov 集成到 CMake 中。但它只有在所有测试用例都通过时才有效。我的几个 Google 测试用例都失败了,所以 cmake 停止生成覆盖率报告。
有没有办法改变 CMake 的构建系统行为?
gcovr - 为什么gcovr会生成空报告
gcovr,尽管提供了完整的参数列表,但生成空报告?
命令:gcovr -r /home/<username>/Projects/ --object-directory <Path to Build Directory>
结果:
c++ - gcovr 未显示未触及的头文件的代码覆盖率
对于仅标头库,我具有以下结构
现在test1.cpp
只使用. header1.h
_ _ _ _
我还想显示 0% 的覆盖率,因为它代表了测试覆盖的代码的更准确表示。test1.cpp
--coverage
gcovr
-r ../include
header1.h
header2.h
header3.h
regex - gcovr 和正则表达式的问题
我正在尝试将来自多次运行的特定文件的覆盖率数据合并到一个“报告”中。在每个项目中,我为不同的文件生成测试覆盖率,每个文件都在一个单独的项目文件夹中,然后最后我挑选并选择要包含在我的最终项目中的文件。如果我使用以下命令行,在其中选择带有 --filter [完整路径和文件名] 的每个文件,它会完美运行,并且我会得到一个仅包含这些文件的组合报告。我还看到它在日志中选择了文件,因为我启用了如下所示的 -v 选项。
gcovr -g -k -s --html --html-details -o code_coverage_summary2.html -r . --filter firmware/crc32/crc_unit_tests.X/mcc_generated_files/boot/boot_verify_crc32.c --filter firmware/sha256/sha_unit_tests.X/mcc_generated_files/boot/boot_verify_sha256.c --filter firmware/checksum/checksum_unit_tests.X/mcc_generated_files/boot/boot_verify_checksum16.c --filter firmware/command_processor/bootloader_pic_tb.X/mcc_generated_files/boot/boot_process.c -v > log4.txt
从上面运行的日志文件(之前有很多行)
(之后很多很多行)
我还有更多文件要添加,我真的不想为每个唯一的路径和文件名设置一个特定的过滤器。我想要的是对所有包含该模式的文件的过滤器 boot_verify*.c
。我尝试了如下所示的不同正则表达式,但它们都没有返回选择的文件。
为了解决这个问题,我尝试了一个下面只有一个文件名的正则表达式,即使这样也没有用。
我真的很想让通配符模式和特定的文件名模式正常工作。我究竟做错了什么?
肯
gcov - gcov 生成正确的输出,但 gcovr 没有
在此处运行 gcovr 的设置示例:https ://gcovr.com/en/stable/guide.html#getting-started我可以构建文件并从运行中看到以下输出gcovr -r .
:
如果我gcov example.cpp
直接运行,我可以看到生成的 .gcov 数据是正确的:
我不确定这个 gcov 输出和它的 gcovr 解释之间的脱节在哪里。
我尝试降级到较旧的 gcovr 版本,在其他项目上运行命令,并切换 python 版本,但没有看到任何不同的行为。
我的 gcov 和 gcc 来自 Xcode 命令行工具。gcovr 已安装 pip(在带有 python 3.8.5 的 pyenv 中)
编辑:添加详细输出: