问题标签 [lcov]
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.
code-coverage - LCOV 报告:'geninfo:负长度'
我正在两个系统(Windows 7、cygwin、Lcov 1.10)上使用 LCOV 分析 C 代码。在一个系统上我从来没有遇到过问题,但在另一个系统上我得到了相同的代码:
在两个系统上,文件夹和文件是相同的(通过颠覆版本控制)。我猜可能某些路径可能存在问题。有人知道这是怎么回事吗?谢谢,领导
附录:我发现它有助于完全清理项目(删除所有 CMakeFiles 和 CMakeCache)并重新运行 lcov 命令。
node.js - 如何将 C++/Javascript Node.js 组合插件的代码覆盖率发布到 Coveralls.io?
我有一个由 C++ 插件和 Javascript 库代码组成的Node.js 模块。lcov
它包括用于 C++ 和istanbul
Javascript的命令行生成的代码覆盖率分析。两者的输出都是 lcov 格式,可以很好地组合在完整的覆盖率报告中。详情请参阅make cover
。Makefile
我的问题是如何发布此组合代码覆盖率的输出以显示在Coveralls中? 我曾尝试使用node-coveralls但这仅处理模块中的 javascript,并且据我所知cpp-coveralls仅处理 C++。有没有办法将两者的输出结合起来并将结果发布到工作服?
提前感谢您的任何见解。
gcov - lcov 无法正常工作以进行覆盖
我正在尝试使用 gcc 4.8.2 和 lcov 1.10 为测试获取 html 覆盖率。我确信我的源文件、对象和 gcov 文件位于同一个位置,并且我正在从运行编译器的目录中运行 lcov。
我收到以下错误:
xcode - XCode 5.1 单元测试覆盖分析在使用块的文件上失败
今天我的任务是在我们的代码库中添加单元测试覆盖分析。今天也是 iOS 7.1 与 XCode 5.1 一起发布的日子。从发行说明:
重新实现了用于代码覆盖测试的 gcov 工具。新版本使用来自 LLVM 项目的 llvm-cov 工具。它在功能上等同于旧版本的所有重要特性。Xcode 中 gcov 的位置也移动了,使用 xcrun 调用它。如果您发现问题,请提交错误报告。对于此版本,您仍然可以使用来自 GCC 的旧版本 gcov,它以 gcov-4.2 的形式提供。11919694 更新
我只是在阅读了几篇指导性 博客 文章后才意识到这一点,正确设置了我的环境-在测试时在模拟器的构建文件夹中生成 .gcda/.gcno 文件-并让此处的报告生成工具尝试将它们解析为报告。(这是一个 ./getcov 脚本,它收集您的环境变量以传递给 lcov-1.10 脚本以生成报告)
第一个障碍是新的捆绑gcov
程序不支持获取版本的参数,这是初始化-v
的第一步。lcov
似乎已经不是初学者了,但是阅读上面的发行说明,我修改了lcov
脚本以使用旧gcov-4.2
版本并解决了这个问题。
但是,lcov
在处理我的覆盖数据文件时很早就出错了。这会生成一个报告,其中可能包含我项目中按字母顺序排列的前 10 个左右的文件。不是特别有用。错误输出也很小且无济于事:
geninfo: 错误: (build_artifacts)/(class_that_errored).gcda 的 GCOV 失败!
我修改了lcov
脚本以打印它得到的错误(11
不幸的是,它只产生了,在 gcov(-io).c 代码中找不到任何引用)并继续操作而不是退出,所以我留下了更多报告中的文件,但仍然可能有 85% 的源文件如上所述错误。
在报告中成功结束的文件和引发错误的文件之间,我能辨别的唯一模式是任何使用内联块声明的文件都失败了。没有以任何方式通过使用块的文件,并且我检查过的所有失败的文件都包含块。奇怪的。
然后我发现我可以打开CoverStory中的各个 .gcda 文件,包括那些在lcov
脚本中出错的文件。在覆盖率报告下方的消息窗口中,所有出错的文件都有警告消息:
(class_that_errored).gcno: '__copy_helper_block_' 没有行
(class_that_errored).gcno: '__destroy_helper_block_' 没有行
在这一点上,我最好的假设是新的 XCode 5.1 正在生成旧gcov-4.2
程序无法处理有关块声明的 .gcda 文件。
但是我已经用尽了所有我能想到的尝试,所以我在这里询问是否有人有我错过的知识,或者有任何想法来进一步调试工作。或者,如果自从今天的 XCode 5.1 更新后,有人成功地测量了测试覆盖率gcov
,我也很想听听您必须做出的任何更改。
c++ - lcov 和 gcovr 选项用于忽略编译器生成的死代码
我的团队正在寻找一种方法来绕过 gcov 报告死/编译器生成代码的分支覆盖率。我注意到 gcovr 有一个选项--exclude-unreachable-branches
似乎可以满足我们的需要。此外,lcov 具有--no-markers
忽略源代码中的排除标记的选项。
这两个选项是否将编译器生成的“死代码”排除在分支覆盖范围之外?
另外,我想知道,
这两种工具有什么区别?
我们目前使用 lcov,我知道它以图形显示格式显示 gcov 信息。
ios - LCOV 不适用于新的 Xcode 5.1
我正在使用 LCOV 来获取我的 iOS 应用程序的代码覆盖率,但它不再适用于 Xcode 5.1。它曾经用较旧的 Xcode 编写。
所以我用谷歌搜索了一下,发现了这个:https ://github.com/jonreid/XcodeCoverage这似乎有效,但不包括我所有的类和函数。仅供参考,我没有在排除数据()中添加任何代码,因此它会自行发生。
请帮我完成这项工作。
谢谢,
c++ - 如何告诉 lcov 忽略源文件中的行
我想知道是否有可能告诉 lcov 忽略源文件中的某些行,即。不要将它们报告为未访问。我正在寻找可以放入代码本身的解决方案,例如:
以及必要的背景:
像上面这样的一大段代码正在一系列单元测试中进行测试,但是由于这段代码仍在开发中,所以有很多NOT_IMPLEMENTED("A*")
宏只是在屏幕上显示一条带有行号/文件名的消息并退出应用。未实现的分支没有测试,显然它们将在功能实现时编写。
然而 lcov 报告了这些NOT_IMPLEMENTED
线,它们在覆盖率报告中看起来非常难看(即:它们的红线比例很高)。
我要求的是可能的,还是我们应该忍受这个?
command - geninfo 搜索 .da 而不是 .gcda
当我尝试通过 Plink 执行以下 lcov 命令时(我给 Plink 一个文本文件作为包含以下命令的参数)
结果是
GNU gcov 1.5 版从 . 扫描。对于 .da 文件 ... gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] 文件 geninfo:在 / 的模式匹配 (m//) 中使用未初始化的值home/myUser/lcov/lcov/usr/bin/geninfo 第 1874 行。gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] 文件 geninfo:使用未初始化的值/home/myUser/lcov/lcov/usr/bin/geninfo 第 3622 行的模式匹配 (m//)。 geninfo:在 /home/myUser/lcov/lcov/usr 的模式匹配 (m//) 中使用未初始化的值/bin/geninfo 第 3622 行。 geninfo:错误:在 .! 中找不到 .da 文件
似乎 geninfo 需要.da文件而不是.gcda文件。当我在没有 Plink 的情况下(在同一个 CWD 中)执行相同的命令时,lcov 运行良好并生成一个有效的.info文件。当我通过 PuTTY 手动执行它时,它也运行良好。
这可能是什么原因?
gcov - 生成空的 .gcda 文件
我使用 gcov 进行代码覆盖分析,使用 lcov 生成覆盖的图形输出。这适用于至少执行了目标文件的某些部分的代码文件。我希望能够跟踪根本没有执行的文件。我怀疑这与没有为这些文件生成 .gcda 文件有关。有没有办法强制为所有目标文件生成 .gcda 文件而不管执行如何?
lcov - 获取单个存储库的工作服中的多个覆盖率报告
是否可以为单个存储库的前端和后端测试获得单独的覆盖率报告?
似乎一种可能的方法是将lcov
报告连接成一个,然后运送到工作服,如this question中所述。
但是,我想知道是否有办法查看前端和后端的单独代码覆盖率报告,或者为lcov
工作服提供两个文件。如果是这样,怎么做?