网站首页 > 技术教程 正文
google test(以下简称gtest)是谷歌的开源C++单元测试框架,用来做c/c++的单元测试比较方便。下面对于它在linux下的使用做简单的介绍,同时也作为自己的笔记。因为仅作示例,因此以下过程也比较简单。
准备gtest框架
在github网站下载gtest框架,目录下有以下内容:
├── build-aux
├── CHANGES
├── cmake
├── CMakeLists.txt
├── codegear
├── configure.ac
├── CONTRIBUTORS
├── docs
├── include
├── LICENSE
├── m4
├── make
├── Makefile.am
├── msvc
├── README.md
├── samples
├── scripts
├── src
├── test
└── xcode
现在我们需要将其编译成.o文件
编译生成gtest.o文件:
g++ -o gtest.o -I./include -I./ -c ./src/gtest-all.cc
再生成.a静态库文件:
ar -rv libgtest.a gtest.o
生成的libgtest.a以及该目录include下的头文件都是我们后面测试需要的。
新建测试项目
新建项目目录,比如我创建了一个LeetcodeWithC目录。
同时,在该目录下创建以下三个目录
├── gtest //存放gtest框架内容
├── leetcode //存放项目源代码
├── testcase//存放测试用例代码
└── Makefile
getest目录下有刚才所说的include头文件,lib文件。另外,我们还需要一个main函数文件。放在getst的main下:
leetcode目录下新建src目录和include目录,分别用于存放头文件和.c文件
我在include下放了两个头文件,common.h 和leetcode_functions.h
内容分别如下:
common.h
leetcode_functions.h
src目录下为项目的.c文件
testcase下新建include和src目录
src目录下有测试用例文件leetcode_test.cpp
编译链接
测试之前,需要编译并链接我们得项目代码和测试框架。
编译
链接
g++ -o main *.o -I./include -L./gtest/lib -lgtest -lpthread
最后生成main文件。
运行测试
运行生成的可执行文件main
./main
运行结果如下:
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from two_sum_test
[ RUN ] two_sum_test.twoSum001
numsSize=4
[ OK ] two_sum_test.twoSum001 (0 ms)
[----------] 1 test from two_sum_test (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[ PASSED ] 1 test.
可以看到,共有一个用例,通过了一个用例
总结
使用gtest框架进行单元测试还是比较方便的,有很多可用的测试方法,具体可以查看官网文档,另外它还有打桩功能,对于其他一些复杂的测试也是可以胜任的。
如果觉得测试结果不直观,还可以结合gcov进行代码覆盖率的测试,从测试报告中可以很清晰的看到用例跑到了哪些代码。
需要C/C++ Linux服务器开发学习资料私信“资料”(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享
猜你喜欢
- 2024-10-12 压力测试工具-ab工具(压力测试教程)
- 2024-10-12 java项目测试环境搭建(java环境搭建实验报告)
- 2024-10-12 jmeter压测实战总结(jmeter压测方案)
- 2024-10-12 Nginx负载均衡的原理及处理流程(nginx负载均衡的三种方式)
- 2024-10-12 如何对ESB平台进行性能测试(如何对esb平台进行性能测试)
- 2024-10-12 kubenetes v1.23.0-实战六 集群部署nginx测试
- 2024-10-12 linux 系统生成测试 SSL证书 nginx|https|http2|quic
- 2024-10-12 Web应用服务器性能压力测试(什么工具可以对web服务器进行压力测试)
- 2024-10-12 简单的视频推流测试(ffmpeg+nginx)
- 2024-10-12 利用docker 单机测试nginx的5种负载均衡
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)