C/C++ test中文网站 > 热门推荐 > C/C++test怎么进行代码覆盖率分析 C/C++test覆盖率统计结果缺失如何检查
教程中心分类
C/C++test怎么进行代码覆盖率分析 C/C++test覆盖率统计结果缺失如何检查
发布时间:2026/09/28 10:41:14

  单元测试运行成功后,下一步是看代码究竟执行到了哪里。C/C++test可以按行、函数、分支等口径统计覆盖率;如果结果为空,先别急着补测试用例,检查测试是否执行、覆盖率是否启用,往往更快找到问题。下文以C/C++test Professional的Eclipse集成界面为例。

  一、C/C++test怎么进行代码覆盖率分析

 

  建议先选定一个项目或源文件,用行覆盖率查看整体情况,再逐层找到未覆盖的函数。分析分支条件时,可切换到分支覆盖率;两种数字衡量的内容不同。

 

  1、启用覆盖率统计

 

  ①点击【Parasoft】→【Test Configurations】,选中用于执行单元测试的配置。

 

  ②打开【Execution】→【General】,勾选【Enable Test Execution】,将【Execution mode】设为【Unit Testing】。

 

  ③在【Instrumentation mode】中选择【Full】;如需指定统计口径,选择【Custom instrumentation】,点击【Edit】,启用【C/C++Code Coverage】并勾选所需指标。

 

  ④保存配置,返回项目树。

 

  2、运行测试并查看覆盖率

 

  ①在项目树中选中要统计的项目或源文件,点击【Parasoft】→【Test Using】,运行刚才设置的单元测试配置。

 

  ②测试结束后,点击【Parasoft】→【Show View】→【Coverage】。

 

  ③在【Coverage】视图的下拉菜单中选择【Type】→所需覆盖率类型,展开项目、文件和函数节点查看结果。

 

  ④双击目标文件,在代码编辑器中查看已覆盖与未覆盖的位置。

 

  3、核对单个用例的覆盖范围

 

  ①点击【Parasoft】→【Show View】→【Test Case Explorer】,选中需要分析的用例。

 

  ②在【Coverage】视图中点击【Synchronize with selection in Test Case Explorer】,查看这些用例对应的覆盖情况。

 

  ③检查完毕后关闭该同步筛选,再查看整个测试范围的统计结果。

 

  二、C/C++test覆盖率统计结果缺失如何检查

 

  “没有数字”与“覆盖率为零”要分开看。前者重点检查配置和结果展示;后者还要确认目标代码是否进入测试范围、相关用例是否实际运行。

 

  1、检查统计配置与显示口径

 

  ①打开【Parasoft】→【Test Configurations】→【Execution】→【General】,确认【Enable Test Execution】已勾选。

 

  ②检查【Instrumentation mode】:若选中【Full runtime w/o coverage】或【No instrumentation】,改为【Full】后重新运行测试。

 

  ③如果使用【Custom instrumentation】,点击【Edit】,检查【C/C++Code Coverage】及所需统计指标。

 

  ④回到【Coverage】视图,点击【Type】,切换到已启用的指标。

  2、检查测试和文件范围

 

  ①打开【Test Case Explorer】,确认本次运行的用例及其结果。

 

  ②在项目树中重新选中待测源文件或项目,运行同一测试配置。

 

  ③打开该配置的【Scope】,检查目标文件是否被筛选条件排除。

 

  ④若【Coverage】视图只显示项目汇总,展开项目节点,再查看文件和函数数据。

 

  3、检查筛选和旧结果

 

  ①在【Coverage】视图中检查是否开启了与【Test Case Explorer】选择项同步的筛选;如需查看全部用例,关闭筛选。

 

  ②打开【Execution】→【General】,检查【Quick execution mode】。需要重新生成覆盖率结果时,取消勾选并运行测试。

 

  ③查看测试运行输出;若测试可执行文件构建失败或用例没有执行,先处理对应报错,再重新统计。

 

  4、检查特定代码的统计设置

 

  ①如果缺少的是C++模板代码的覆盖率,打开测试配置的【Execution】→【General】。

 

  ②在【Instrumentation mode】旁点击【Edit】,启用【Enable coverage for C++templates】。

 

  ③保存配置,重新运行包含该模板实例的测试用例。

 

  三、发现未覆盖代码后怎么继续分析

 

  统计结果出现后,可以先从未覆盖的函数和分支入手。行覆盖率显示“执行到这一行”,分支覆盖率则能帮助检查条件判断的不同走向;看见绿色标记,也不代表该处所有分支都测到了。

 

  1、定位遗漏的执行路径

 

  ①在【Coverage】视图中选择【Type】→行覆盖率,展开覆盖率较低的文件。

 

  ②双击目标函数,对照编辑器中的未覆盖标记,找出对应的输入条件。

 

  ③将【Type】切换为分支覆盖率,检查条件判断是否还有未执行的走向。

 

  2、补充用例并复查

 

  ①在【Test Case Explorer】中找到目标函数的测试用例,补充能触发遗漏分支的输入值。

 

  ②如果分支取决于其他函数的返回值,调整该测试用例使用的桩函数返回值。

 

  ③重新运行测试,回到【Coverage】视图核对新增覆盖的位置。

  总结

 

  覆盖率数字适合用来寻找测试盲区,也适合在代码调整后观察哪些路径受到了影响。读结果时,把统计范围、指标口径和实际执行的用例放在一起看,数字才有参考价值。希望这篇关于C/C++test代码覆盖率分析与结果缺失检查的内容对大家有帮助;如有C/C++test相关需求,欢迎联系我们咨询。

读者也访问过这里:
176 5129 0128