You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Atollic TrueStudio(STM32开发)中进行单元测试?

Atollic TrueStudio单元测试最优方案及Cute Test配置指南

一、当前TrueStudio单元测试的最优选择

先给你明确个现状:Atollic TrueStudio已经被ST官方的STM32CubeIDE逐步取代,原来配套的TrueVerifier单元测试工具早就停止维护了。所以针对你的使用场景,有两个最优方向:

  • 优先考虑迁移到STM32CubeIDE
    CubeIDE完全继承了TrueStudio的核心功能,还原生集成了更成熟的单元测试支持——适配Google Test、Unity等主流C/C++测试框架,而且会持续得到ST的官方更新和维护,长期来看这是最省心的方案,除非你的项目有TrueStudio专属功能的强依赖。

  • 在现有TrueStudio中集成第三方测试框架
    如果暂时没法迁移,手动集成主流测试框架是可行的。Google Test的社区支持最广、文档最全,但既然你已经装了Cute Test,下面就重点讲怎么把它用起来。

二、TrueStudio中配置Cute Test的详细步骤

你说已经装好了基于Eclipse的Cute Test插件,但找不到创建测试的选项,大概率是视角没切换或者项目配置没到位,跟着下面的步骤来:

1. 激活Cute Test专属视角

  • 打开TrueStudio,依次点击 Window > Perspective > Open Perspective > Other,在弹出的窗口里找到Cute Test,选中后点击OK。切换到这个视角后,所有和Cute Test相关的操作入口都会显示出来,方便后续操作。
  • 如果找不到这个视角,先检查插件是否真的装好了:进入 Help > About Atollic TrueStudio > Installation Details,在Installed Software标签页搜索Cute Test,确认它在列表里。要是没有,重新安装插件再重启TrueStudio。

2. 给STM32项目添加测试用例/套件

  • 右键点击你的STM32项目,选择 New > Other,在弹出的窗口里展开Cute Test目录,选择Cute Test Case(单个测试用例)或者Cute Test Suite(多个用例的集合),点击Next。
  • 跟着向导填信息:
    • 建议新建一个专门的tests目录来放测试代码,别和生产代码混在一起;
    • 如果需要每个测试前后执行前置/后置操作,勾选Generate setUp() and tearDown()选项,最后点击Finish就能生成测试文件了。

3. 配置嵌入式环境的测试运行参数

因为STM32是嵌入式平台,不能直接在PC上跑测试,得配置交叉编译工具链:

  • 右键点击测试文件或者测试目录,选择 Run As > Run Configurations
  • 在弹出的窗口里,选择Cute Test类型,点击New创建新配置:
    • Main标签页里,选好你的测试项目和对应的测试套件;
    • C/C++ Application下拉框里,选择你用STM32交叉编译工具链生成的测试可执行文件;
    • 切换到Environment标签页,添加交叉编译需要的环境变量,比如把STM32工具链的bin目录加到PATH里。

4. 编写测试并运行

在生成的测试文件里写你的测试逻辑,举个例子:

#include <cute/cute.h>
#include "your_stm32_module.h" // 引入你要测试的STM32模块头文件

// 测试模块初始化功能
void test_module_init() {
    ASSERT_EQUAL(0, your_module_init()); // 断言初始化成功返回0
}

// 测试模块数据处理功能
void test_module_process_data() {
    int result = module_process(10, 20);
    ASSERT_EQUAL(30, result); // 断言处理结果符合预期
}

// 组装测试套件
cute::suite make_suite_YourModuleTests() {
    cute::suite test_suite;
    test_suite.push_back(CUTE(test_module_init));
    test_suite.push_back(CUTE(test_module_process_data));
    return test_suite;
}

写完后,点击工具栏的Run按钮,或者右键测试套件选择Run As > Cute Test,就能在Cute Test View里看到测试结果了。

常见问题排查

  • 还是找不到创建测试的选项:试试重置视角配置——Window > Perspective > Reset Perspective,然后重新打开Cute Test视角;
  • 编译报错:检查有没有正确链接Cute Test的库文件,同时确认交叉编译工具链的包含路径里加了Cute Test的头文件目录。

内容的提问来源于stack exchange,提问作者Michel Keijzers

火山引擎 最新活动