项目简介
这是一个单头文件的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】