1. Tessy单元测试中的头文件导入难题解析
第一次用Tessy给嵌入式C项目做单元测试时,我遇到了各种奇葩的头文件导入问题。记得当时一个简单的#include语句就能让整个测试环境崩溃,那种挫败感至今难忘。后来才发现,Tessy对头文件的处理方式和我们平时开发时不太一样,需要特别注意几个关键点。
最常见的就是"No such file or directory"报错。这个问题我遇到过不下十次,每次都是因为路径设置不对。Tessy在解析头文件时,会严格按照你在工程中设置的搜索路径来查找。如果头文件引用了其他目录下的文件,而你又没把这些目录添加到搜索路径中,就会报错。
举个例子,假设你的工程结构是这样的:
code复制project/
├── src/
│ ├── main.c
│ └── module/
│ ├── module.c
│ └── module.h
└── include/
├── common.h
└── config.h
在Tessy中,你需要把include目录和src/module目录都添加到头文件搜索路径中。我建议使用相对路径而不是绝对路径,这样工程迁移到其他机器上时不会出问题。具体操作是在Tessy的"Environment Settings"里找到"Include Paths",然后添加这两个目录。
另一个常见问题是头文件编码格式。有次我导入一个头文件后,Tessy一直报"null character(s) ignored"警告,折腾了半天才发现是因为头文件是GB2312编码的。Tessy默认使用UTF-8编码,遇到其他编码的文件就会出问题。解决方法很简单,用记事本或VS Code把文件另存为UTF-8格式就行了。
递归导入头文件也是个技术活。当你的工程很大,有几十上百个头文件时,手动一个个导入太麻烦了。Tessy提供了递归导入功能,但用不好容易出问题。我的经验是,先确保所有头文件都在正确的目录结构中,然后用"Add Folder Recursively"功能导入整个目录树。导入后一定要检查Tessy生成的依赖关系图,看看有没有漏掉的头文件。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境配置中的那些坑
配置Tessy测试环境时,我踩过不少坑。最让人头疼的就是编译器设置问题。Tessy支持多种
