OpenCppCoverage 是适用于 Windows 和 Visual Studio 的轻量开源 C++ 代码覆盖率工具,通过插桩统计执行行并生成 HTML 等格式报告;需 MSVC 编译环境及 PDB 调试信息,支持源码路径限定、模块过滤、工作目录设置、多格式导出与覆盖率阈值校验,可集成至 VS 外部工具或 CMake 构建流程,但不支持直接分析静态库。
在 C++ 项目中做代码覆盖率测
试,OpenCppCoverage 是一个轻量、开源、支持 Windows 和 Visual Studio 的主流选择。它通过插桩(instrumentation)方式统计哪些代码行被执行过,生成 HTML 报告直观展示覆盖情况。
OpenCppCoverage 没有安装程序,下载 Release 版本(如 OpenCppCoverage-0.9.9.0-x64.zip)解压即可。确保你的编译环境是 MSVC(Visual Studio 2015 及以上),且已生成带调试信息的 PDB 文件(即编译时开启 /Zi 或 /Z7,链接时保留 /DEBUG)。
基本命令示例:
OpenCppCoverage.exe --sources MyProject\src -- MyProject\bin\MyApp.exe
OpenCppCoverage.exe --sources . -- MyApp.exe --test-mode
--excluded_sources test/ --excluded_sources build/
合理使用参数能显著提升报告准确性:
立即学习“C++免费学习笔记(深入)”;
--modules MyApp.dll),避免第三方库干扰html(默认)、xml(供 CI 解析)、json 等格式不依赖外部脚本也能高效使用:
add_custom_target 中封装 coverage target,用 cmake --build . --target coverage 触发实际使用中几个高频问题:
--include_sources *.h *.hpp 可启用(但需谨慎,模板/宏展开可能失真)--wait_for_child_processes 等待子进程