首页 > 系统相关 >linux环境编程(1): 实现一个单元测试框架-2

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

时间:2023-08-20 13:44:12浏览次数:44  
标签:Case cutest 编程 单元测试 TEST linux Test Suite

正片开始

之前的文章中, 介绍了如何实现一个类似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的注册. 具体实现可参考代码片段, 或者上一篇文章中的介绍.

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

<iframe allowfullscreen="true" border="0" frameborder="no" framespacing="0" height="500" scrolling="no" src="//player.bilibili.com/player.html?aid=574920927&bvid=BV1Mz4y1u7Xm&cid=1240550020&page=1" width="100%"> </iframe>

结尾彩蛋

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

标签:Case,cutest,编程,单元测试,TEST,linux,Test,Suite
From: https://www.cnblogs.com/kfggww/p/17643674.html

相关文章

  • Linux路由功能练习(1)
    打开一台Linux虚拟机VM1,并添加2块网卡,一个使用VMware1网卡,一个使用VMware2网卡配置VMware1网卡的IP地址为192.168.136.254/24;VMware2网卡的IP地址为192.168.137.254/24[root@nb~]#ifconfigens33192.168.136.254netmask255.255.255.0[root@nb~]#ifconfigens37192.168.1......
  • Linux性能优化宝典
    性能优化性能指标高并发和响应快对应着性能优化的两个核心指标:吞吐和延时应用负载角度:直接影响了产品终端的用户体验系统资源角度:资源使用率、饱和度等性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。性能分析实际上就是找出应用或系统的瓶颈,设法......
  • 探索编程世界的宝藏:程序员必掌握的20大算法
    #程序员必须掌握哪些算法?#1引言在当今数字化时代,程序员们仍然需要拥有一把解决问题和优化代码的金钥匙。这些钥匙是算法,它们隐藏在计算机科学的宝藏中,等待着我们去发现和掌握。本篇博文将带你踏上一段引人入胜的探险之旅,揭开程序员必须掌握的20大算法的神秘面纱。从冒泡排序到......
  • windows系统下从硬盘安装linux-ubuntu
    #windows系统下从硬盘安装linux-ubuntu-1.使用系统自带的分区工具,划10G左右的空间当作安装盘。分区格式为FAT32,取个名字叫A。-2.把下载好的ubuntu镜像打开,复制内容到安装盘A。-3.重启电脑,按F12选择硬盘启动项。这里选ubuntu。 ......
  • Linux网络编程(epoll的ET模式和LT模式)
    (文章目录)前言本篇文章主要来讲解epoll的ET模式和LT模式,epoll中有两种模式可以选择一种是ET模式(边缘触发模式),另一种是LT模式(水平触发模式)一、ET模式和LT模式概念讲解1.水平触发模式(LT,Level-Triggered)在水平触发模式下,当一个文件描述符上的I/O事件就绪时,epoll会立即通知......
  • Linux专栏(一):VMware的下载与安装
    1背景想要学习Linux系统但又不想经历安装双系统复杂的操作,可以试试虚拟机方案。只是虚拟机方案不可以调用GPU就非常的无语,作为初学者学习还是非常不错的!注意:倘若真正转入Linux系统,安装双系统或者单Linux才是完美解决方案✿✿ヽ(°▽°)ノ✿2下载VMware虚拟机VMware虚拟机......
  • 异步编程:promise and future
    本文介绍C++中异步编程相关的基础操作类,以及借鉴promiseandfuture思想解决回调地狱介绍。std::threadandstd::jthreadstd::thread为C++11引入,一个简单的例子如下:classWorkerfinal{public:voidExecute(){std::cout<<__FUNCTION__<<std::endl;}......
  • Linux专栏(二):创建虚拟机与Ubuntu安装
    本文将介绍在VMware中如何创建虚拟机并安装Ubuntu20.04系统1下载Ubuntu20.04镜像下载地址:Ubuntu官网镜像下载2创建虚拟机Step1:打开上文Linux专栏(一)——VMware的下载与安装下载的VMware,点击创建虚拟机,后在弹窗中默认设置点击下一步;Step2:按照如图下选择点击下一步;Step3:......
  • Linux之定时器
    Linux下的实现方式socket选项SO_RECVTIMEO和SO_SNDTIMEOSIGALRM信号信号相关笔记:Linux之信号I/O复用系统调用的超时参数定时器及其容器定时器封装了以下内容超时时间回调函数:就是每次时间到了要干嘛连接资源:包括客户端socket地址、socket文件描述符、定......
  • Linux Mint 21.3 计划于 2023 年圣诞节发布
    Linux Mint项目近日公布了基于Ubuntu的LinuxMint发行版下一个重要版本的一些初步细节,以及备受期待的基于Debian的LMDE6(LinuxMintDebianEdition)版本。近日,LinuxMint项目负责人克莱门特-勒菲弗(ClementLefebvre)给出了答案:LinuxMintDebianEdition6的开......