如何配置VS2022使Fine Code Coverage插件生成测试覆盖率输出?
解决Fine Code Coverage(FCC)在GoogleTest C++项目中无输出的问题
核心排查与修复步骤
- 确认测试程序的PDB文件存在:你目前只提到了
SWTimers.pdb和Gtest.pdb,但FCC需要TestSwTimers.exe对应的TestSwTimers.pdb在同一目录。右键测试项目→属性→链接器→调试,确保开启生成调试信息(/DEBUG),且程序数据库文件路径指向输出目录。 - 验证测试发现器有效性:打开Visual Studio的测试资源管理器,确认
TestSwTimers.exe的测试用例能被正常发现并执行。如果测试资源管理器看不到测试,检查GoogleTest的链接配置:确保项目正确引用GoogleTest NuGet包或本地编译库,且C++语言标准与主项目一致。 - 手动注册探查器:以管理员身份启动Visual Studio,若仍无效,打开管理员命令提示符,导航到FCC安装目录(通常在
%USERPROFILE%\.vs\extensions\<随机字符串>\Fine Code Coverage),执行命令:FineCodeCoverage.Profiler.exe /register。 - 调整FCC过滤规则:在Visual Studio菜单栏→Tools→Options→Fine Code Coverage中,检查Include Filters是否包含你的主项目和测试项目的匹配规则(如
SwTimers*、TestSwTimers*),同时确认Exclude Filters未误排除目标代码。 - 重新生成解决方案:执行Clean Solution后再Rebuild Solution,确保所有可执行文件和PDB都是最新版本,避免因旧文件不匹配导致的问题。
关于Usage guide:当前FCC的使用说明已不再提供
Usage.rtf,可通过Visual Studio扩展管理页面查看FCC的内置帮助文档。
内容的提问来源于stack exchange,提问作者Jerry Crane
相关产品推荐
相关产品推荐

