Cantata中文网站 > 热门推荐 > Cantata怎么生成测试报告 Cantata测试报告缺少覆盖率数据如何检查
教程中心分类
Cantata怎么生成测试报告 Cantata测试报告缺少覆盖率数据如何检查
发布时间:2026/08/27 10:47:36

  Cantata完成单元测试、集成测试或代码覆盖率采集后,可以把测试结果整理成HTML、XML等报告,也可以保留用于后续分析的测试结果文件。报告里是否带有覆盖率,不只看测试有没有执行,还要看本次测试是否做了覆盖率插桩、运行后有没有生成覆盖数据,以及报告读取的是哪一批结果。遇到功能测试结果正常、覆盖率章节却为空的情况,可以先从结果文件和覆盖数据入手,再检查报告使用的数据范围。

  一、Cantata怎么生成测试报告

 

  Cantata运行测试脚本后会产生测试结果数据,生成报告前先确认这次测试已经完整结束。图形界面适合单次查看,批量测试或持续集成场景还可以直接从结果文件生成HTML报告。

 

  1、先运行测试并检查结果文件

 

  ①在【Project Explorer】中找到准备生成报告的【Test Script】。

 

  ②执行测试脚本的【Build】,确认测试程序编译和链接没有报错。

 

  ③运行当前测试脚本,让全部测试用例执行完成。

 

  ④打开【Test Results Explorer】,检查各条【Test Case】是否已经有明确结果。

 

  ⑤查看测试输出目录,确认已经生成对应的【CTR】测试结果文件。

 

  ⑥测试过程中出现脚本错误或程序提前退出时,先处理失败用例,再重新执行测试。

 

  ⑦确认本次测试结果完整后,再进入报告生成环节。

 

  【CTR】保存Cantata测试结果,集成覆盖率测试时还可以记录已经完成分析的覆盖信息。测试程序中途停止,后面的结果没有写入,生成报告时也不会补出来。

 

  2、使用Report Viewer查看和生成报告

 

  ①在Cantata中打开【Report Viewer】。

 

  ②载入当前测试运行对应的【CTR文件】。

 

  ③检查报告中的测试脚本名称、测试用例数量和执行状态。

 

  ④查看报告里的【Test Results】内容,确认成功、失败和脚本异常数量与【Test Results Explorer】一致。

 

  ⑤按项目要求选择HTML、XML或其他支持的报告形式。

 

  ⑥需要查看完整测试明细时,选择【Full HTML Test Report】相关报告样式。

 

  ⑦指定报告保存目录并生成文件。

 

  ⑧打开生成后的HTML文件,再检查测试用例、调用检查和覆盖率章节是否齐全。

 

  Cantata还支持RTF、XML以及用于测试记录保存的文本和HTML报告。不同报告类型展示内容会有差别,做测试归档时可以固定同一种格式,后续版本之间更容易对照。

 

  3、用cppctr2html生成HTML报告

 

  批量测试完成后,可以直接把CTR转换成HTML,不必逐个打开图形界面。

 

  ①找到本次测试生成的【CTR文件】。

 

  ②确认Cantata命令行工具所在目录已经加入当前运行环境。

 

  ③使用【cppctr2html】读取目标CTR结果。

 

  ④给报告指定单独的HTML输出文件。

 

  ⑤命令执行完成后打开输出文件。

 

  ⑥检查报告中的测试结果和覆盖率摘要。

 

  ⑦不同测试脚本分别生成报告时,给文件使用简短且容易区分的名称。

 

  【cppctr2html】用于把CTR测试结果整理成单个HTML文件,比较适合放进Jenkins等自动测试任务中。

 

  二、Cantata测试报告缺少覆盖率数据如何检查

 

  测试用例已经出现在报告中,却没有覆盖率,说明功能测试数据已经写出。此时重点检查COV数据有没有生成,以及覆盖分析结果有没有进入当前CTR。

 

  1、检查本次测试有没有生成COV文件

 

  ①打开当前【Test Script】的测试配置。

 

  ②确认测试已经启用【Coverage Rule Set】。

 

  ③检查本次采用的覆盖指标,例如【Statement】【Decision】【Condition】或【MC/DC】。

 

  ④重新执行测试脚本的【Build】,让被测源码完成覆盖率插桩。

 

  ⑤运行测试程序。

 

  ⑥测试结束后进入输出目录,检查有没有对应的【COV文件】。

 

  ⑦再打开【Coverage Results Explorer】,确认文件能够显示覆盖数据。

 

  Cantata每次覆盖率运行会生成对应的COV数据。连COV文件都没有时,报告缺少覆盖率并不是报告设置问题,要回头检查插桩和测试运行。

  2、检查覆盖数据有没有写入CTR

 

  使用Cantata Test Script做集成覆盖率测试时,覆盖信息可以进入CTR结果。如果只是单独运行经过插桩的程序,得到的可能只有COV数据。

 

  ①打开【Coverage Results Explorer】。

 

  ②确认当前COV文件能够正常读取。

 

  ③打开【Data Manager】,查看当前选择了哪些【Coverage Files】。

 

  ④勾选本次准备写入报告的覆盖结果。

 

  ⑤检查测试脚本是否已经执行覆盖率检查。

 

  ⑥重新运行对应测试,让覆盖检查结果写入新的【CTR文件】。

 

  ⑦重新用【Report Viewer】或【cppctr2html】生成报告。

 

  如果采用延迟覆盖率分析,可以使用Cantata的【cppgetcov】处理COV数据,并生成带覆盖结果的CTR,再拿这份结果生成报告。

 

  3、多个测试都有覆盖率但报告只显示一部分

 

  ①打开【Data Manager】。

 

  ②查看当前载入的全部【COV文件】。

 

  ③检查是不是只勾选了一次Test Run。

 

  ④把属于同一源码版本、同一分析范围的覆盖数据选中。

 

  ⑤返回【Coverage Results Explorer】,查看汇总数据是否发生变化。

 

  ⑥需要把多次运行作为一份测试证据时,把相关COV结果合并到测试脚本的覆盖分析中。

 

  ⑦生成新的CTR后,再输出测试报告。

 

  Cantata允许组合多份COV覆盖数据,但不同运行使用的源码版本、宏定义或构建变体不一样时,不能只看一个汇总百分比,要先把测试范围核对清楚。

 

  三、覆盖率仍未出现在报告里怎么继续检查

 

  报告设置没有明显问题时,可以继续看覆盖率过滤范围、文件版本以及测试执行完整性。某个源码没进入插桩范围,也会让报告里的覆盖结果出现缺口。

 

  1、检查Coverage Rule Set和文件范围

 

  ①进入当前测试使用的【Coverage Rule Set】。

 

  ②确认需要的覆盖指标处于启用状态。

 

  ③检查源码文件的Include和Exclude设置。

 

  ④确认目标.c、.cpp和相关头文件没有被排除。

 

  ⑤项目使用不同Build Variant时,确认当前报告读取的是对应构建版本的数据。

 

  ⑥清理原来的测试构建文件。

 

  ⑦重新Build、运行并生成COV和CTR结果。

 

  覆盖规则改过以后,不建议继续拿旧COV直接生成新报告。源码和插桩规则已经发生变化时,重新构建和执行更容易让结果对应当前版本。

 

  2、检查测试有没有提前结束

 

  ①打开【Test Results Explorer】查看本次运行状态。

 

  ②检查有没有【SCRIPT_ERROR】或失败后没有继续执行的测试。

 

  ③打开【Console】,找到程序退出前的记录。

 

  ④单独运行导致异常的测试用例。

 

  ⑤处理非法访问、死循环、目标通信中断等测试环境问题。

 

  ⑥重新执行整份测试脚本。

 

  ⑦确认新的COV和CTR文件修改时间已经更新。

 

  ⑧再次生成报告并核对覆盖率章节。

  总结

 

  Cantata测试报告缺少覆盖率时,可以把测试结果文件和覆盖数据分开检查。功能测试有结果,只说明测试脚本已经执行,覆盖率还要经过源码插桩、数据采集和覆盖分析几个环节。把CTR、COV以及当前Data Manager中的数据范围核对清楚后,更容易找到报告为什么只显示部分测试信息。后续固定覆盖规则和报告生成方式,也方便不同测试批次之间核对数据。如需进一步了解Cantata测试报告生成、覆盖率数据处理与报告内容排查方法,欢迎联系咨询。

读者也访问过这里:
135 2431 0251