Cantata中文网站 > 热门推荐 > Cantata怎么创建单元测试工程 Cantata单元测试工程配置错误如何排查
教程中心分类
Cantata怎么创建单元测试工程 Cantata单元测试工程配置错误如何排查
发布时间:2026/08/27 09:47:50

  Cantata开始做C/C++单元测试前,要先把被测源码、原项目构建参数和测试使用的编译环境接起来。工程创建后能看到源码,并不代表测试环境已经配置好,头文件路径、预处理宏、编译器选项或目标Deployment少一项,后面生成测试脚本时就可能报解析错误,构建测试程序时也容易停下来。Cantata提供Testing Project向导,可从CMake、Make、IAR、Keil、Visual Studio等构建环境读取工程信息,配置出错时可以沿着源码位置、Build System和编译参数逐项检查。

  一、Cantata怎么创建单元测试工程

 

  1、使用Testing Project向导创建工程

 

  原项目没有现成的Cantata测试工程时,可以从【Create Cantata Testing Project】向导开始。

 

  ①打开Cantata IDE,在新建项目入口选择【Cantata Testing Project】。

 

  ②进入【Locate Software Under Test】页面。

 

  ③在【Software Under Test】区域找到【Location】,点击【Browse】选择被测源码所在目录。

 

  ④打开【Build System】下拉框,按原工程选择【CMake】【GreenHills MULTI】【IAR Embedded Workbench】【KeilµVision】【Make】【Microsoft Visual Studio】或【NXP CodeWarrior】。

 

  ⑤不确定构建类型时,可以点击【Detect】,让向导根据当前源码目录检查构建环境。

 

  ⑥在【Test Project】区域填写测试工程名称,并确认工程保存位置。

 

  ⑦点击【Next】继续检查向导识别出的工程信息。

 

  ⑧内容确认后点击【Finish】,等待测试工程写入Workspace。

 

  已有Eclipse工程也可以直接作为测试工程使用,不一定要复制一套源码。源码目录比较大时,也可以通过链接目录的方式放进测试项目,减少重复维护文件。

 

  2、检查导入的构建参数

 

  向导完成后,先确认头文件和宏有没有正常带进来,再生成测试脚本。

 

  ①展开【Project Explorer】,打开一个主要的.c或.cpp文件。

 

  ②查看源码中#include对应的头文件能否正常解析。

 

  ③出现头文件找不到时,检查原工程使用的【Include Paths】有没有导入。

 

  ④检查条件编译区域使用的宏是否已经包含在测试工程中。

 

  ⑤原项目存在Debug、Release或不同Target配置时,确认当前测试工程读取的是准备测试的那一套参数。

 

  ⑥重新刷新工程,让Cantata重新解析源码。

 

  Cantata创建测试工程时会从原构建系统读取头文件路径、预处理定义和相关编译设置。原工程本身依赖外部脚本动态生成这些参数时,自动导入后仍要人工核对一次。

 

  3、确认测试使用的Deployment

 

  主机GCC环境和嵌入式交叉编译环境不能直接按同一套配置处理。Cantata测试程序需要使用与被测代码匹配的编译器库和Deployment。

 

  ①确认项目原来使用的编译器及版本。

 

  ②打开Cantata的Deployment配置,检查当前工程选择的编译器环境。

 

  ③使用交叉编译器时,确认对应的【Compiler】、目标架构和语言设置已经配置。

 

  ④工程包含C和C++混合代码时,分别检查C与C++编译参数。

 

  ⑤目标程序还依赖RTOS或专用运行库时,检查对应Deployment是否已经包含这些环境设置。

 

  ⑥保存配置后先构建一份简短测试脚本,确认编译器能够正常工作。

 

  二、Cantata单元测试工程配置错误如何排查

 

  1、工程创建失败先检查源码位置和Build System

 

  向导无法完成,或者点击【Finish】后没有正常生成工程,可以先回到创建页面检查几个基础项。

 

  ①重新打开【Create Cantata Testing Project】。

 

  ②确认【Location】指向的是被测软件根目录,不要只选择其中一个src子目录。

 

  ③检查目录里是否存在原构建系统需要的工程文件。

 

  ④重新点击【Detect】,查看识别到的【Build System】是否正确。

 

  ⑤识别错误时不要继续创建,手动切换成实际使用的构建系统。

 

  ⑥Workspace里已经存在同名测试项目时,更换【Test Project】名称后再创建。

 

  ⑦源码目录发生过移动时,重新通过【Browse】定位实际目录,不继续使用旧工程保存的路径。

  2、工程能打开但源码大量报错

 

  这种情况通常出现在构建信息没有完整导入。

 

  ①打开报错文件,先查看哪一个头文件无法解析。

 

  ②回到原工程,找到该头文件实际使用的Include目录。

 

  ③检查Cantata测试工程中的【Include Paths】。

 

  ④补入缺少的目录后重新刷新源码。

 

  ⑤条件编译区域报错时,对照原编译命令检查【Preprocessor Defines】。

 

  ⑥像DEBUG、CPU类型、产品型号这类宏要和原工程保持一致。

 

  ⑦原编译器带有专用语言扩展时,再检查当前Deployment中的编译器选项。

 

  如果同一个源文件在原项目能编译,在Cantata里却出现大批语法错误,先查编译器参数和宏定义,不要直接改被测源码去迁就测试环境。

 

  3、生成测试脚本后构建失败

 

  工程解析正常,到了测试程序构建阶段才报错,可以从Cantata生成的Makefile和编译日志继续找。

 

  ①选中一个依赖较少的源文件生成测试脚本。

 

  ②执行测试脚本构建。

 

  ③打开【Console】,找到第一处编译或链接错误。

 

  ④提示头文件缺失时,回查测试工程的Include路径。

 

  ⑤提示宏或类型未定义时,核对原项目的编译定义。

 

  ⑥出现undefined reference一类链接错误时,检查被测函数调用的外部对象是否已经加入测试范围。

 

  ⑦外部函数不准备使用真实实现时,可在测试脚本中生成对应Stub或Wrapper。

 

  ⑧修改配置后重新Build,确认上一处错误消失后再继续处理下一项。

 

  三、工程修好后怎么确认配置可以继续测试

 

  1、先生成一份小范围测试脚本

 

  工程刚调整完成时,不用马上对整个模块批量生成测试。

 

  ①在【Project Explorer】中选择一个接口比较简单的源码文件。

 

  ②执行Cantata测试脚本生成操作。

 

  ③查看生成的Test Script和Cantata Makefile。

 

  ④确认函数列表与被测源码一致。

 

  ⑤打开测试用例编辑界面,检查参数类型、全局数据和外部调用是否被正确识别。

 

  ⑥构建并运行这一份测试脚本。

 

  ⑦测试能够生成、编译和执行后,再扩大到其他文件。

 

  2、切换目标环境时重新检查Deployment

 

  同一套测试脚本从主机环境迁到目标板时,测试代码可以继续使用,但底层Deployment需要对应新的目标环境。

 

  ①确认当前工程准备运行在哪个目标上。

 

  ②检查目标对应的Cantata Deployment。

 

  ③核对交叉编译器、芯片架构和运行环境。

 

  ④切换Deployment后重新构建测试程序。

 

  ⑤确认测试可执行文件能够下载或运行到目标环境。

 

  ⑥查看测试结果能否正常返回Cantata主机端。

 

  这样可以把“测试脚本本身的问题”和“目标环境配置的问题”分开,后续出现构建错误时也更容易找到位置。

  总结

 

  Cantata单元测试工程配置是否正确,主要看原工程的构建信息有没有被完整带入测试环境,以及当前Deployment能不能匹配实际编译平台。工程创建完成后先用一份依赖较少的源码做验证,可以较早发现路径、宏定义、工具链和外部依赖方面的问题,也能避免后面批量生成测试时一次出现大量错误。如需继续了解Cantata单元测试工程创建、编译环境配置与工程故障排查,欢迎联系咨询。

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