项目简介
这是一个单头文件的C/C++单元测试框架,受到GOLANG单元测试的启发。该框架由定义测试用例的头文件和执行测试的运行器两部分构成,支持macOS(arm/x86)、Linux、Windows (x86/x64) 以及部分嵌入式设备(如ESP32、NRF52、STM32x、SiLabs EFR32M系列)。
项目的主要特性和功能
- 并行执行:V2版本支持测试模块并行执行,能为中等规模项目提升约10倍速度,可通过
--sequential
参数禁用。 - 多版本兼容:V2版本有新特性,旧版本接口仍支持,可通过
-D TRUN_USE_V1
编译选项使用旧版接口,Windows系统需始终用旧版接口。 - 跨平台支持:支持多种操作系统和部分嵌入式设备,不同平台有对应安装和使用方式。
- 丰富的断言和接口:提供
TR_ASSERT
断言宏和ITesting
接口,支持设置前置/后置回调钩子、处理测试用例和模块依赖关系。 - 灵活的测试执行控制:可控制测试模块和用例执行顺序,支持跳过全局主函数、忽略测试用例返回值等选项。
- 多样化的报告格式:支持
console
、json
、jsonext
等报告模块,便于集成到构建服务器或其他工具。
安装使用步骤
安装
- 创建构建目录:
mkdir build
- 进入构建目录:
cd build
- 运行cmake:
cmake ..
- 编译项目:
- macOS:运行
make; sudo make install
,二进制文件trun
安装到/usr/local/bin
,testinterface.h
安装到/usr/local/include
。 - Linux:运行
make -j; sudo make install
,二进制文件trun
安装到/usr/bin
,testinterface.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
文件添加依赖,手动添加测试用例并启动测试。
- macOS:运行
使用
- 编写测试用例:将测试用例和被测试代码编译成动态库(.dll、.so、.dylib),测试用例函数遵循
test_<module>_<testcase>
命名模式。 - 执行测试:使用
trun
命令执行测试,通过-v
(详细输出)、-l
(列出所有可用测试)、-m
(指定测试模块)等选项控制。示例:bin/trun -scC -m shared .
- 查看报告:默认用
console
报告模块,通过-R
选项指定其他报告模块,如json
。结合-s
选项可使报告为唯一输出。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】