如何让OpenCppCoverage覆盖率报告包含未被测试触及的文件?
如何让OpenCppCoverage覆盖率报告包含未被测试触及的文件?
我之前也碰到过一模一样的问题,OpenCppCoverage默认只会把有代码被执行过的源文件放进报告,没被测试碰过的文件直接就被忽略了。不过解决起来很简单,给命令加个专门的参数就行。
你只需要在现有命令里加上--include_unexecuted_source_files这个参数,它的作用就是强制让工具把所有匹配你--source规则的源文件都纳入报告——哪怕这些文件里没有任何一行代码被测试执行,也会在报告里显示出来,并且标记为0%的覆盖率。
调整后的完整命令应该是这样的:
"C:\Program Files\OpenCppCoverage\OpenCppCoverage.exe" --source core\** --include_unexecuted_source_files --export_type cobertura:coverage_result\coverage.xml -- .\x64\Debug\tests.exe
另外再给你提两个小注意点:
- 确认你的
--source core\**确实能匹配到core库下所有的源文件,这个通配符是可以覆盖core目录下所有子目录里的文件的。 - 确保你的core.lib是用Debug模式编译的,并且生成了完整的PDB调试文件——OpenCppCoverage需要依赖调试信息来关联目标文件和源文件,如果PDB不全,可能还是会有文件识别不到的情况。
备注:内容来源于stack exchange,提问作者Leonardo Faria
相关产品推荐
相关产品推荐

