使用 lcov 报告代码覆盖率时出错

2023-12-01

更新到 Ubuntu 16.04 后,我正在尝试对我的项目进行覆盖。 我明白了

Deleted 665 files
Writing data to coverage.info.cleaned
lcov: ERROR: cannot write to coverage.info.cleaned!
CMakeFiles/coverage.dir/build.make:57: recipe for target 'CMakeFiles/coverage' failed
make[3]: *** [CMakeFiles/coverage] Error 13
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/coverage.dir/all' failed
make[2]: *** [CMakeFiles/coverage.dir/all] Error 2
CMakeFiles/Makefile2:74: recipe for target 'CMakeFiles/coverage.dir/rule' failed
make[1]: *** [CMakeFiles/coverage.dir/rule] Error 2
Makefile:129: recipe for target 'coverage' failed
make: *** [coverage] Error 2
enter code here

更新之前,我运行覆盖范围没有问题


如果您使用有帮助吗绝对路径而不是相对路径当将文件传递给lcov?

我遇到了类似的问题lcov也无法写入文件。 不确定这是否是一个错误lcov,但问题是它与相对路径混淆了:

lcov -a test_fast_cxxtest_gcov__base.info -a test_fast_cxxtest_gcov__test.info \
     -o test_fast_cxxtest_gcov__total.info
Combining tracefiles.
Reading tracefile test_fast_cxxtest_gcov__base.info
Reading tracefile test_fast_cxxtest_gcov__test.info
lcov: WARNING: function data mismatch at /home/phil/ghost/constants.h:1862
Writing data to test_fast_cxxtest_gcov__total.info
lcov: ERROR: cannot write to test_fast_cxxtest_gcov__total.info!

运行它strace显示它执行chdir("/")在多个位置,这会将工作目录更改为/。这解释了为什么它无法写入文件。

一种解决方法是使用绝对路径。例如,如果您使用 GNU make,则可以使用abspath命令:

lcov -a $(abspath test_fast_cxxtest_gcov__base.info) \
     -a $(abspath test_fast_cxxtest_gcov__test.info) \
     -o $(abspath test_fast_cxxtest_gcov__total.info)

更改后,终于可以写入文件了。

(其他选项,例如尝试使用设置目录--base-directory or --directory据我所知,选项没有效果。 的版本lcov我测试的版本是1.12。)

这个问题不仅限于 Ubuntu,我在 Arch Linux 上也遇到过这个问题。然而,这可能是 1.12 中引入的回归,所以我报告了它(请参阅问题#77630).

Update:Lcov 不是 GCC 的一部分,因此我最初的错误报告已关闭,但我从 Lcov 邮件列表中得到了答案。问题已经在commit中解决了632c25。基于 Arch Linux 的发行版的用户可以尝试使用最新的快照aur/lcov-git.

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

使用 lcov 报告代码覆盖率时出错 的相关文章

  • 同时运行 React 和 Node。

    我有一个我认为不太独特的用例 但我遇到了挑战 我的应用程序是用express EJS编写的 在端口35上运行 我想包括react 所以我正在遵循教程 并在我现有的应用程序中编写这个应用程序 并在另一个端口上运行 当两个应用程序位于不同端口时
  • Kubernetes Pod 停留在 Terminate 的解决方案

    我遇到了上述问题 在 kubectl delete f 之后 我的容器将陷入 终止 状态 我在 Docker 日志中看不到任何可以帮助我缩小范围的内容 Docker 重新启动后 pod 就会消失 我可以像往常一样继续 但这不是你的生活方式
  • 为什么 emma 不完全覆盖 finally 块?

    我不明白为什么艾玛没有为 finally 块提供完整的代码覆盖率 我制作了一个简短的示例程序来演示这一点 当我执行该程序时 它显示 try finally 所以我不明白为什么finally被标记为红色 未执行 而 finally print
  • Chrome 开发者工具:I CSS 覆盖未使用的字节

    我正在尝试从网页中删除未使用的 CSS 在 Chrome 开发者工具中 gt 单击垂直三个点 gt 更多工具 gt 覆盖范围 单击任意 CSS 我们看到一份报告 其中红色表示未使用的 CSS 绿色表示已使用的 CSS 有没有一种方法可以根据
  • 如何使用 xdist 和 django_coverage_plugin 并行 pytest 运行覆盖率报告

    使用以下设置 计算出的覆盖率小于使用没有并行化的单线程的覆盖率 Coverage 仅在项目根目录中创建 1 个覆盖文件 我预计这就是问题所在 我无法确定我做错了什么 报告的覆盖范围比我简单地运行要少coverage m pytest 在单线
  • 使用 Rails 测试 PayPal

    我需要测试新的 PayPal 与我的应用程序的集成 我在开发环境中使用 PayPal 沙箱 为了测试整个界面 我发现ngrok https ngrok com 可能会解决来自 PayPal 的消息问题 我使用安装了 ngrokapt get
  • GCC 的代码覆盖率选项如何工作?

    考虑以下命令 gcc fprofile arcs ftest coverage main c 它生成文件 main gcda gcov 将使用该文件来生成覆盖率分析 那么main gcda是如何生成的呢 仪器仪表是如何完成的 我可以看到检测
  • 字节字符串太长 PyPyOdbc

    使用 FreeTDS 和 Python3 5 库 PyPyodbc 我得到了 Byte string too long 当尝试在 SQL Server 数据库 驻留在 Windows 上 中插入行时 在 FreeTDS conf 文件下有一
  • Pythoncoverage.py 排除行

    背景 我有几个使用coverage py 的Django 项目 并且一直在尝试向我的 coveragerc 配置文件的exclude lines 部分添加一些额外的表达式 问题是 即使使用正确的正则表达式 也可以在测试器中拾取该行 例如ht
  • 使用 selenium+maven 自动化的代码覆盖率开发工具?

    是否可以通过 selenium maven 自动化使用代码覆盖率开发工具 来自即将发布的 Chrome 版本 例如 就像 Java 项目的 JaCoCo 一样 IE 我想象我们的网络产品大约有这样的场景 有一个包含多个测试用例的测试套件 C
  • Selenium:有没有可以与 Selenium Server/RC 集成的 JS (JavaScript) 代码覆盖工具

    Selenium 有没有可以与 Selenium Server RC 集成的 JS JavaScript 代码覆盖工具 Hi 我想通过我的 Selenium 测试套件完成 JS 代码覆盖率 是否有任何代码覆盖率工具可以与我现有的 selen
  • 如何使用 --timid 标志来覆盖鼻子

    我想使用运行 nosetests with coverage 内德 巴切尔德 Ned Batchelder 的报道模块 http nedbatchelder com code coverage 但将 timid 标志传递给覆盖模块 有没有办
  • 如何使用 Linux 帧缓冲区旋转 Qt5 应用程序?

    我有一个直接在 Linux 帧缓冲区 无 x Windows 上运行的嵌入式 Linux 应用程序 现在我们必须将显示屏物理旋转 180 度 如何让我的 Qt 应用程序旋转 使其不会出现颠倒 我看到参考使用以下选项 platform lin
  • 如何让VS忽略Test dll的代码覆盖率

    目前 当我运行代码覆盖率分析时 报告的覆盖率为 90 问题是 另外 10 是实际测试的代码 我怎样才能让VS忽略该测试代码而只考虑实际代码 您可以在项目中添加运行设置文件 在该文件中 您可以提及需要从代码覆盖率中排除的 DLL 名称
  • gcovr 和 Xcode 5 的代码覆盖率不起作用

    我正在使用 gcovr 生成 cobertura 的代码覆盖率 xcode 4 6 一切正常 现在我更新到了 xcode5 我得到的一切都是 0 覆盖率 我的设置 全球冠状病毒3 0 Xcode 5 苹果 LLVM 5 生成测试覆盖率文件
  • Linux 中的 Swift arc4random_uniform(max)

    我在 Ubuntu 中使用 Swift 收到一条错误消息 指出 arc4random 是一个无法解析的标识符 有关此已知错误的更多信息here https bugs swift org browse SR 685 基本上 该功能仅存在于 B
  • gcloud 部署应用程序找不到导入包 - golang

    我已经将应用程序的一个版本部署到 GAE 但现在部署新版本时遇到问题 当我尝试时gcloud app deploy version VERSION 我收到一堆错误 显示远程构建找不到我的导入包 Beginning deployment of
  • 如何诊断这些 PHP 代码覆盖分段和 zend_mm_heap 损坏错误

    我一直很高兴在我的 Ubuntu 机器上编码 这是一台拥有大量内存的强大机器 我正在研究 4 个新课程 一边编写和运行单元测试 在某些时候 我注意到 虽然单元测试完成得很好 但代码覆盖率却没有 在消息 正在生成代码覆盖率报告 等 之后 我会
  • Windows 上本机 C++ 应用程序中的自动死代码检测?

    背景 我有一个用原生 C 编写的应用程序 花了几年的时间 大约有 60 KLOC 有很多函数和类已经死了 可能有 10 15 就像下面提出的类似的基于 Unix 的问题 我们最近开始对所有新代码进行单元测试 并尽可能将其应用于修改后的代码
  • 为什么 PHPUnit 将一些右大括号显示为未被覆盖?

    我正在使用 PHPUnit 3 6 7 PHP CodeCoverage 1 1 1 和 Xdebug 2 1 2 当我让 PHPUnit 将代码覆盖率统计信息写入 clover 样式的 XML 文件时 它偶尔会显示一个右花括号 表示测试未

随机推荐

  • 通过powershell安装docker时出错

    在 Windows Server 2016 上安装 docker 时出现此错误 有什么想法吗 PS C Users Administrator gt Install Package Name docker ProviderName Dock
  • Boost C++ - 寻找精神符号表

    在 Boost Spirit 中如果我有符号表 struct Foo boost spirit qi symbols
  • 在 vsts 中下载构建工件无法获取特定构建定义的最新构建

    我正在使用 VSTS 中的下载工件插件来使用当前构建定义获取不同构建定义的特定工件 我无法将工件下载到本地代理 我安装了私人代理 下面抛出错误 12 01 2018 下午 01 30 Shwetha Rattihalli 2018 01 1
  • '?' aria-label='DML 中是否有 C++ 的等效项:'template '?'> DML 中是否有 C++ 的等效项:'template '?

    对于这个模板 是否可以参数化uint32类型 template test t saved uint32 data 我尝试使用param mytype uint32 但没有成功 是否可以采用其他方式 DML 没有对泛型的内置支持 但是您can
  • 如何禁用 IntelliJ IDEA 中模块的某些检查?

    在 IntelliJ IDEA 中 我可以禁用对类 方法或其他单元的某些检查 我的项目中有一个模块 它是一个库 我不是唯一的使用者 我没有使用库中的所有方法 因此大量方法被标记为 未使用 这些都是误报 我想单独禁用此模块的这些检查 理想情况
  • 遗传算法中的适应度函数设计

    我需要求解联立线性方程 具有 7 个未知数的 5 个方程 即欠定问题 其中变量在很大范围内变化 0 1 00 000 有人可以建议我应该使用什么健身功能吗 我猜你指的是一个由 5 个线性方程组和 7 个变量组成的系统 这张纸似乎显示了您正在
  • 如何将数组传递给匿名函数?

    我目前在 Powershell 中使用匿名函数 我注意到在从系统值类型 to 系统对象 举个例子 f param InputArray Write Host Arr Type During Call InputArray GetType F
  • namapeace 中缺少 UWP 和 FullTrustProcessLauncher

    我正在尝试使用 UWP 应用程序启动 powershell 所有用户都可以执行的一些轻量级命令 命令FullTrustProcessLauncher 问题是我发现这个名字在当前上下文中不存在 我的清单很大程度上是默认的 所以它看起来像
  • 按 ID 和日期合并行

    我是 R 新手 我一直在寻找如何解决以下问题 我有一个 df 看起来像 id 日期 OB1 OB2 OB31 2017 01 01 1 0 02 2006 01 05 1 0 02 2007 04 19 0 1 03 2015 02 23
  • SSIS 中的 TFS 集成

    我有几个SSIS使用开发的包VS2013 NET 4 5 Framework 在一种解决方案中 很少有使用开发的软件包VS2012 NET 4 0 Framework 在另一个解决方案中 我想将这两种解决方案与TFS 目前 我已经集成了VS
  • 无法跟踪实体类型的实例,因为跟踪了具有相同键值的另一个实例[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我在 asp net core 2 0 中使用通用存储库模式 它无法处置存储库对象 当我要更新条目时 它已成功更新一次 但当我尝试更新更多时 它会抛出以下异常 无法跟踪实体类型 Compa
  • 如何使用函数返回两列

    我想用我的 SQL 函数返回 2 个值 CREATE OR REPLACE FUNCTION get avg prices RETURNS table avg sale price decimal avg rent price decima
  • 即使在 .NET 中使用 SQLParameter 也存在 SQL 注入示例?

    我听说当对 SQL Server 使用 ADO NET SQLParameter 参数化查询 时 仍然可以进行 SQL 注入 我正在寻找 C VB 代码中的真实示例作为证据 编辑 我正在寻找具体的工作示例 没有介绍 sql 注入或如何防止它
  • 使用自定义着色器渲染“硬”边缘

    我想重现使用创建的效果THREE EdgesHelper 在 硬 对象边缘上绘制边界 但使用自定义着色器而不是添加单独的着色器THREE Line目的 本质上我想做的事情这个演示 但仅适用于 硬 边界 例如边界不在两个共面之间 方法 应用类
  • ADFS + OpenID Connect 电子邮件声明和外部 ADFS

    我在 Windows Server 2016 上使用 OpenID Connect 设置 ADFS 时遇到困难 我已经设置 AD 进行测试 并且可以成功进行身份验证 但是电子邮件声明不在 id 令牌中 此外 我还在声明提供者信任中设置了外部
  • 需要获得超过 20 个区域监控通知

    我正在开发一个应用程序 用户可以在其中设置多个位置 当用户进入或离开特定位置边界时 我成功显示通知 现在 有一种情况 我需要为所有保存的位置提供监控 并且可能有数百个甚至更多 我在 Apple 论坛和许多地方读到过 iOS 设备只允许 20
  • 获取对特定消息做出反应的用户列表

    我正在学习discord py 我正在尝试获取对特定消息做出反应的用户列表 名称 ID 下面是我的代码 async def ga self ctx channel ctx channel users async for message in
  • 使用 HTML Agility 搜索所需数据后如何从网页中抓取数据

    我想从中获取信息这个网站 使用 HTML Agility Pack 进入我的 ASPX 页面 但我不能这样做 因为数据是在我在网页中搜索数据后加载的 我需要在5分钟的间隔后连续完成一些数据 您提到的网站中的搜索结果是使用 Javascrip
  • 将减法结果限制为最小值为零

    我有一个向量 x 其值范围从 0 到 1 例如x lt c 0 0 5 1 我从 x 中减去 0 5 x 0 5 的结果x 0 5范围从 0 5 到 0 5 但是 我想将结果的最小值限制为 0 即新的范围将为 0 5 到 0 任何以前的负数
  • 使用 lcov 报告代码覆盖率时出错

    更新到 Ubuntu 16 04 后 我正在尝试对我的项目进行覆盖 我明白了 Deleted 665 files Writing data to coverage info cleaned lcov ERROR cannot write t