为什么 gcov 报告使用良好的类的头文件覆盖率为 0%?

2023-12-10

我第一次尝试使用以下方法来测量测试覆盖率gcov。现在我已经过了最初的学习曲线,除了一个小障碍之外,一切似乎进展顺利。我希望这可以归结为我缺乏理解,所以我希望熟悉 gcov 的人能够解释发生了什么。

问题是我有一个特定的头文件显示 0% 覆盖率。但是,那only该标头中的内容是常用类的类声明。

此外,该类的实现文件显示了 100% 的覆盖率,我可以指出 5 个不同的测试,在这些测试中我知道该类已成功实例化。

那么为什么 gcov 会报告该类的覆盖率为 0%,我该如何修复它呢?

- 编辑 -

正如 lacqui 下面指出的,如果标头没有可执行代码,则不应将其包含在覆盖率计算中。事实上,在我的所有类中,该特定头文件是 gcov 试图为其生成覆盖率信息的唯一一个。

我与其他标头进行了逐行比较,我发现最大的区别是这个特定的标头没有显式的构造函数或析构函数,而其他标头有。为了尽量减少文件之间的差异,我向问题类添加了显式 ctor 和 dtor。然而,这并没有什么区别。


看来我已经解决了这个问题。正如我所料,这更多的是缺乏经验的问题。

事实证明,gcov 只找到了可用跟踪文件的子集,因此只报告了全部结果的一部分。查找并添加其余跟踪文件解决了该问题。

对于任何好奇的人来说,有问题的头文件仍然显示在输出中。事实上,所有其他头文件也是如此,即使它们不包含可执行代码。然而,它们的覆盖率都在 90% 以上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 gcov 报告使用良好的类的头文件覆盖率为 0%? 的相关文章

  • 不能从模板 C++ 类继承[重复]

    这个问题在这里已经有答案了 我不知道这里出了什么问题 也许有人可以帮助我 我想继承我的新班级MyDictionary来自模板抽象类dictionary 我有这样的代码 字典 h ifndef UNTITLED CPP DICTIONARY
  • Angular 2和Jasmine单元测试:无法获取innerHtml

    我正在使用测试组件 WelcomeComponent 的示例之一 import Component OnInit from angular core import UserService from model user service Co
  • 在 Postman 中连接 ECONNREFUSED

    我试图通过邮递员测试我的 REST API 但收到以下错误 这是我编写的第一个 REST API 我对邮差很陌生 所以不确定我做错了什么 下面是我尝试使用此 URL 在邮递员中调用的代码 我在 URL 中传递两个日期参数 https loc
  • 如何在运行时添加到 TreeView 目录

    我有一个TreeView我想允许用户添加和删除子项目 在探索基本功能时 我使用button and a textbox添加此子项 当用户点击button a new TreeViewItem需要创建并设置为我的父项的子项TreeView与t
  • Roslyn SyntaxNode 是否被重用?

    我一直在看罗斯林CTP http msdn microsoft com en us roslyn并且 虽然它解决了类似的问题表达式树API http msdn microsoft com en us library bb397951 asp
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • Coffeescript + 单元测试:全局变量?

    我正在尝试使用 Jasmine 对用 CoffeeScript 编写的小型应用程序进行单元测试 我发现很多资料都说单元测试可以在从 CoffeeScript 编译的 JS 上完美地完成 如果所有内容都包装在匿名函数中以避免污染名称空间 如何
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 重载<<的返回值

    include
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在

随机推荐

  • fwrite(): SSL 操作失败,代码为 1。OpenSSL 错误消息:\n错误:1409F07F:SSL 例程:SSL3_WRITE_PENDING:PHP 中的错误写入重试

    我在 stackoverflow 上遇到了同样的问题 并尝试了所有答案 但没有帮助 我不明白错误是什么 这是我正在使用的函数 function sendRegistryNotification message deviceToken dev
  • 如何在 Discord.js 中按名称查找表情符号

    所以过去几天我非常沮丧 因为我无法在网上找到一个资源来正确记录在用 javascript 编写不和谐机器人时如何找到表情符号 我一直在参考本指南 其中有关表情符号的文档似乎要么是错误的 要么是过时的 https anidiots guide
  • Java JTextArea 中选择文本会触发哪个事件?

    我想监视进入 JTextArea 的文本选择 我不知道选择文本会触发什么事件 我只想在从 JTextArea 中选择某些文本后立即启用某些菜单项 例如将选项复制和剪切到菜单中 我应该监控什么 我不知道文本组件有任何 选择侦听器 尽管它们可能
  • 将选择元素绑定到 Angular 中的对象

    我想将一个选择元素绑定到一个对象列表 这很简单 Component selector myApp template h1 My Application h1
  • C++ extern 模板实例化和 typedef (gcc)

    我正在尝试在外部实例化模板 但是我想在实例化子句中使用 typedef 我认为这个例子说了一千多字 typedef myTemplate base
  • 可以混合使用 % 和 px 来对齐表格吗?

    我试图将不同的表与不同数量的列对齐 以便前两列对齐 其余列独立对齐 但使用 非常困难 并且在调整窗口大小时会丢失对齐 这就是为什么我试图在 td 上将混合与 和 px 对齐 例如 table tr td width 100px td td
  • Java中如何进行URL解码?

    在Java中 我想将其转换为 https 3A 2F 2Fmywebsite 2Fdocs 2Fenglish 2Fsite 2Fmybook do 3Frequest type To this https mywebsite docs e
  • 通过javascript通过ajax请求获取页面完整的html源代码

    javascript 代码将通过 google chrome 中的网址栏从 www example com 启动 因此我无法使用 jquery 我的目标是当我在 www example com 中启动代码时 将 www example co
  • 个人版本控制系统推荐[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 供个人使用 任何人都可以推
  • 在 iPhone 上传输音频时是否可以减少背景噪音?

    我们用了一些WebRTC libraries并在测试应用程序中实现它们iPhone 测试应用程序允许使用此应用程序在两部手机之间进行语音通话 类似于 Skype 该应用程序会产生大量背景噪音 比 Skype 或 Line 等其他手机应用程序
  • 从 vb.net 中的命令行获取参数

    是否可以从返回参数processPath在这个例子中 抱歉 这可能更有意义 Dim processName As String Dim processPath As String If processName cmd Then Dim ar
  • IBM MQ 会话断开连接

    我正在创建一个像这样的 MQ 侦听器 它工作正常 但几分钟或几小时后就会因此异常而断开连接 我不控制服务器 这是通过专用电路而不是互联网进行的 我怀疑是网络问题其他服务在同一线路上运行没有问题 MQQueueConnectionFactor
  • CSS:显示:内联块和定位:绝对

    请考虑以下代码
  • 使用C#在远程计算机上执行powershell脚本

    我使用 Microsoft Bot Framework 创建了一个 Bot 应用程序 并希望实现以下目标 无需任何身份验证即可在远程计算机上执行 Powershell 脚本 powershell 脚本将托管在 Azure 或数据库 可能是任
  • 将 CamelCase 转换为 Snake_Case

    需要以下查询的结果 select regexp replace StackOverflow something something as stack overflow 以下正则表达式在每个大写字母前面添加下划线 regexp replace
  • 在seaborn中绘制两列dataFrame

    我正在尝试在seaborn中创建一个条形图 显示数据框中每行 因子 的两个变量 权重 方差 的值 我的数据如下 Factor Weight Variance Growth 10 0 15 Value 20 0 35 这是我的代码 fig p
  • UICollectionView 的可重用性问题

    我曾与UITableView但我从来没有用过UICollectionView在我的应用程序中 所以我想创建UICollectionView以编程方式 以下是我的代码 UICollectionViewFlowLayout layout UIC
  • 常见的 Linq / 标准查询操作符错误/错误步骤?

    对于没有函数式编程背景的程序员来说 有什么错误是需要避免的吗 人们容易犯的最大错误是误解 LINQ 查询的惰性和评估规则 查询是惰性的 在您迭代它们之前它们不会被执行 This does nothing No query executed
  • boost::unique_lock::timed_lock 的用法

    升压 定时锁 void wait int seconds boost this thread sleep boost posix time seconds seconds boost timed mutex mutex void threa
  • 为什么 gcov 报告使用良好的类的头文件覆盖率为 0%?

    我第一次尝试使用以下方法来测量测试覆盖率gcov 现在我已经过了最初的学习曲线 除了一个小障碍之外 一切似乎进展顺利 我希望这可以归结为我缺乏理解 所以我希望熟悉 gcov 的人能够解释发生了什么 问题是我有一个特定的头文件显示 0 覆盖率