LCOV 工具来统计 Google Test 的代码覆盖率

news/2024/11/23 23:09:03/

要使用 LCOV 工具来统计 Google Test 的代码覆盖率,可以按照以下步骤进行操作:

1、安装 LCOV 工具:首先,确保你已经安装了 LCOV 工具。你可以通过在终端中运行以下命令来检查是否已安装:
lcov --version
如果该命令能够正确执行并显示 LCOV 的版本信息,则表示已安装。

如果未安装 LCOV,请根据你的操作系统,使用相应的包管理器(如apt、yum等)进行安装。
2、生成测试覆盖率数据:在编译 Google Test 时,确保启用了代码覆盖率相关的编译选项。在编译时,添加以下参数:
-fprofile-arcs -ftest-coverage

3、运行测试:运行你的 Google Test 测试案例,确保覆盖了代码的不同路径和分支。

4、生成覆盖率数据文件:在测试运行完成后,使用以下命令生成覆盖率数据文件(通常是以 .gcda 和 .gcno 文件的形式保存):
lcov --capture --directory <build_directory> --output-file <coverage_info_file>
这将在指定的构建目录下捕获代码覆盖率信息,并将其保存到指定的文件中。

5、生成 HTML 报告:使用以下命令生成 HTML 格式的覆盖率报告:
genhtml <coverage_info_file> --output-directory <report_directory>
这将使用之前生成的覆盖率信息文件,生成一个包含详细覆盖率报告的 HTML 文件。
6、查看报告:在指定的报告目录中,打开生成的 HTML 报告文件,你将能够查看测试覆盖率的详细信息,包括每个源代码文件的覆盖率百分比、行覆盖率、分支覆盖率等。

请注意,上述步骤中的 <build_directory> 是指编译生成可执行文件的目录,<coverage_info_file> 是覆盖率信息文件的名称和路径,<report_directory> 是报告的输出目录。

以上是使用 LCOV 工具统计 Google Test 代码覆盖率的一般步骤。具体操作可能因系统和编译环境而有所不同,建议参考 LCOV 的文档或官方网站获取更详细的使用说明和示例。


http://www.ppmy.cn/news/75919.html

相关文章

STM32F030C8T6最小系统板和流水灯(原理图和PCB)

STM32F030C8T6最小系统板和流水灯。 嵌入式课的课程设计&#xff0c;要做个流水灯&#xff0c;我就顺便画个最小系统板&#xff0c;开源出来了&#xff0c;各位大佬指点指点&#xff0c;有哪里需要优化改进的。 那个WS2812的RGB灯用错引脚了&#xff0c;所以没法用PWM来控制&…

野火STM32电机系列(三)Cubemx配置CAN通信

CAN接口: PI9 PB9 1.配置CAN 通信参数 由于F4的 CAN外设挂载在APB1上&#xff0c;时钟配置后APB1的时钟速率为42MHz&#xff0c;目标通信速率为1000KHz&#xff0c;由公式&#xff1a; BaudRate 1/NominalBitTime NominalBitTime 1tq tBS1 tBS2 设置参数如下&#xff1a;…

MongoDB聚合操作

文章目录 一、单一聚合二、聚合管道2.1 $match / $project / $count2.2 $limit / $skip / $sort2.3 $group 分组查询2.4 $unwind 展开数组2.5 $lookup 左外连接2.6 $bucket 存储桶 三、MapReduce 提示&#xff1a;以下是本篇文章正文内容&#xff0c;MongoDB 系列学习将会持续更…

数据结构:二叉树的顺序结构--堆

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下栈和队列方面的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通…

栈和队列OJ题:LeetCode--232.用栈实现队列

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;今天给大家带来的是LeetCode--232.用栈实现队列 数 据 结 构 专 栏&#xff1a;数据结构 个 人 主 页 &#xff1a;stackY、 LeetCode 专 栏 &#xff1a;LeetCode刷题训练营 LeetCode--232.用栈实现队列&#xff…

Allegro优化布线常用技巧

delete-cut 在排线布线过程中&#xff0c;有时候需要调整线序&#xff0c; 这时候&#xff0c;可以使用delete-cut&#xff0c;将需要调整的线&#xff0c; 首尾各剪断一小段线&#xff0c; 这样&#xff0c;中间部分&#xff0c;就变成了dummy net&#xff0c;就可以挂靠任意…

机器学习与深度学习——通过knn算法分类鸢尾花数据集iris求出错误率并进行可视化

什么是knn算法&#xff1f; KNN算法是一种基于实例的机器学习算法&#xff0c;其全称为K-最近邻算法&#xff08;K-Nearest Neighbors Algorithm&#xff09;。它是一种简单但非常有效的分类和回归算法。 该算法的基本思想是&#xff1a;对于一个新的输入样本&#xff0c;通过…

【设计模式】观察者模式与责任链模式异同点

责任链模式和观察者模式都是常见的设计模式&#xff0c;它们都可以用于解耦和增强代码的可维护性。下面是它们的优劣对比&#xff1a; 责任链模式的优点&#xff1a; 可以动态地组合处理者&#xff0c;增加或删除处理者&#xff0c;而不需要修改客户端代码。可以避免请求发送…