👀 背景:
出现下面类似情况:
- 单个运行单元测试用例能达到100%覆盖率,但是运行整个项目的测试用例,就达不到;
- 嵌入式项目受限于内存不能运行整个项目的测试用例。
可能就需要用到这个功能了。
🔧 工具:
C/C++test:版本2020.1及以上
具体实现 #
第一步:保存测试结果文件 #
修改测试配置,选择 执行 > 运行时 ,勾选 归档测试和覆盖结果(实验) ,默认会保存在工作空间下对应项目文件夹内的.cpptest文件夹下新建archive文件夹,保存的文件包括了.tlog文件、.clog文件以及.map文件。
使用修改之后的测试配置,执行单元测试。
第二步:汇总测试结果信息 #
使用内建规则:选中项目,点击菜单栏的 parasoft > 测试执行 > 内建 > Utilities > Load Archived Results 。就能得到汇总的测试结果。
注意: #
修改存档位置 #
如果第一步修改了存档位置,需要修改测试配置:
点击菜单栏的 parasoft > 测试配置 ,在左边找到 Load Archived Results ,右键> 复制 。
在用户自定义中找到复制的 Load Archived Results ,选择 执行 > 常规 ,在 执行细节 下,测试执行流程的下方表格中,修改对应的路径信息。
覆盖率指标要修改 #
Load Archived Results 规则默认会输出多种覆盖率信息,但是如果在第一步的时候,没有收集相应的覆盖率信息,那C++test在执行这个规则的时候会找不到数据,所以这里需要修改插桩模式(例如只需要行覆盖率信息),与前面的保持一致。在用户自定义中找到复制的 Load Archived Results ,选择 执行 > 常规 ,在 执行细节 > 插桩模式 ,点击 编辑 。
在弹出的窗口中,找到 C/C++代码覆盖率指标 ,勾选需要的指标, 确定 > 应用 。