linux环境编程(1): 实现一个单元测试框架-2

正片开始

之前的文章中, 介绍了如何实现一个类似gtest的单元测试框架, 完整的项目代码可以参考这里: https://github.com/kfggww/cutest . 近期对cutest的实现做了一些修改, 包括:

  • Test Suite的声明宏, 修改为TEST_SUITE
  • 增加Test Suite的声明宏TEST_SUITE_WITH. 可传递Suite的init和cleanup函数, 在Suite中每个Case运行之前和之后分别被调用, 用于公共资源的初始化和回收.
  • Test Case的定义宏, 修改为TEST_CASE
  • 增加Test Suite和Test Case的过滤功能. 通过命令行参数, 过滤出要运行哪些测试
  • 优化测试报告输出
  • 增加json格式的测试结果输出
  • 移除各种ASSERT
  • 修改Test Case返回测试结果的方式. Case中需返回TEST_PASS/TEST_FAIL/TEST_IGNORE, 标记测试结果
  • 上传至Ubuntu PPA, 方便安装使用

对于Test Suite以及Test Case如何注册到cutest之中, 实现原理还是使用"constructor"属性函数, TEST_SUITE/TEST_CASE宏会拼接出函数实现, 在程序运行时, 在main函数调用之前, 这些"constructor"函数被调用, 完成Suite以及Case的注册. 具体实现可参考代码片段, 或者上一篇文章中的介绍.

详细信息看下面的视频吧:

结尾彩蛋

更多linux平台技术研究和讨论, 可以进入我的qq群: 838923389

posted @ 2023-08-20 13:30  编程这点事儿  阅读(94)  评论(0编辑  收藏  举报