littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于CC++的单元测试框架

项目简介

这是一个单头文件的C/C++单元测试框架,受到GOLANG单元测试的启发。该框架由定义测试用例的头文件和执行测试的运行器两部分构成,支持macOS(arm/x86)、Linux、Windows (x86/x64) 以及部分嵌入式设备(如ESP32、NRF52、STM32x、SiLabs EFR32M系列)。

项目的主要特性和功能

  1. 并行执行:V2版本支持测试模块并行执行,能为中等规模项目提升约10倍速度,可通过--sequential参数禁用。
  2. 多版本兼容:V2版本有新特性,旧版本接口仍支持,可通过-D TRUN_USE_V1编译选项使用旧版接口,Windows系统需始终用旧版接口。
  3. 跨平台支持:支持多种操作系统和部分嵌入式设备,不同平台有对应安装和使用方式。
  4. 丰富的断言和接口:提供TR_ASSERT断言宏和ITesting接口,支持设置前置/后置回调钩子、处理测试用例和模块依赖关系。
  5. 灵活的测试执行控制:可控制测试模块和用例执行顺序,支持跳过全局主函数、忽略测试用例返回值等选项。
  6. 多样化的报告格式:支持consolejsonjsonext等报告模块,便于集成到构建服务器或其他工具。

安装使用步骤

安装

  1. 创建构建目录:mkdir build
  2. 进入构建目录:cd build
  3. 运行cmake:cmake ..
  4. 编译项目:
    • macOS:运行make; sudo make install,二进制文件trun安装到/usr/local/bintestinterface.h安装到/usr/local/include
    • Linux:运行make -j; sudo make install,二进制文件trun安装到/usr/bintestinterface.h安装到/usr/include;也可运行make -j package生成.deb包,用sudo apt install ./testrunner-<version>-Linux.deb安装。
    • Windows:启动Visual Studio的“Developer Command Prompt”,执行msbuild ALL_BUILD.vcxproj -p:Configuration=Release,手动将testinterface.h文件复制到合适位置,编译测试代码时添加-DTRUN_USE_V1
    • 嵌入式:仅在PlatformIO构建系统测试过,将仓库复制到lib_extras_dir,在platformio.ini文件添加依赖,手动添加测试用例并启动测试。

使用

  1. 编写测试用例:将测试用例和被测试代码编译成动态库(.dll、.so、.dylib),测试用例函数遵循test_<module>_<testcase>命名模式。
  2. 执行测试:使用trun命令执行测试,通过-v(详细输出)、-l(列出所有可用测试)、-m(指定测试模块)等选项控制。示例:bin/trun -scC -m shared .
  3. 查看报告:默认用console报告模块,通过-R选项指定其他报告模块,如json。结合-s选项可使报告为唯一输出。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】