IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:代码覆盖率

共 3 篇相关文章

IT 累计浏览 3,366

Linux下c/c++项目代码覆盖率的产生方法

这篇讲的是C/C++项目如何生成代码覆盖率报告。作者从单元测试实践出发,指出由于C++缺乏Java、Python等语言的反射特性,无法在运行时动态获取代码结构,因此其覆盖率生成过程需要特定工具链的支持。 文章具体介绍了在Linux环境下,如何组合使用编译插桩(gcc的`-fprofile-arcs -ftest-coverage`选项)和工具如`gcov`、`lcov`来完成这一工作。关键步骤包括重新编译代码以注入探针、执行测试用例收集原始数据,最后用工具链将`.gcda`文件转换为可视化的HTML报告。 对于开发者而言,理解这套机制至关重要——它不仅关乎“能否生成报告”,更直接影响如何正确配置构建系统(如在Makefile或CMake中添加相应编译选项)以及解读报告结果。文章为C++项目落地代码质量度量提供了清晰、可操作的入门路径。

IT 累计浏览 3,613

使用gcov完成代码覆盖率的测试

代码覆盖率测试是保障软件质量的重要环节,尤其对于使用GCC工具链的开发者而言。这篇文章深入介绍了GNU工具集中的gcov——一款免费且实用的代码覆盖率工具。作者从gcov的基本原理入手,逐步展开其使用方法,并着重分析了在实际项目集成中可能遇到的痛点,比如编译选项的影响、覆盖率数据的采集与解读等常见问题,并提供了清晰的解决思路。 文中还特别指出,gcov可以与lcov等前端工具结合,生成结构清晰、可视化的HTML格式测试报告,使覆盖率数据一目了然,便于团队跟踪与评审。对于希望以较低成本、较高效率将代码覆盖率测试融入开发流程的团队,这篇文章提供了一套从基础操作到问题排查的完整实践参考。

IT 累计浏览 1,686

JSCoverage 的一个 Uncoverage

这篇讲的是代码覆盖率工具 JSCoverage 在实际使用中遇到的一个诡异问题。作者发现,即使手动执行了目标 JavaScript 代码,JSCoverage 的报告中依然显示这部分逻辑未被覆盖,产生了一个“伪阴性”结果。 问题的根源在于 JSCoverage 的检测机制与现代 JavaScript 引擎及模块加载方式存在兼容性问题。工具依赖于对脚本执行流程的特定监控,但当代码通过 ES6 模块或某些打包工具加载时,其默认的初始化和执行顺序会打乱 JSCoverage 的统计逻辑,导致覆盖率数据失真。 为了解决这个问题,作者深入分析了 JSCoverage 的源码和浏览器调试接口。最终的解决方案并非直接修改工具,而是通过调整测试环境的初始化脚本,在 JSCoverage 启动监控之前,提前触发了对目标代码路径的“预热”执行,从而巧妙地绕过了检测机制的盲区,获得了准确的覆盖率报告。这为处理类似工具兼容性问题提供了一个非常规的思路。