windows从零搭建googletest测试工程
2021/11/8 7:09:52
本文主要是介绍windows从零搭建googletest测试工程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
googletest(也称gtest)是由Google测试技术团队开发的测试框架。为c/c++代码提供了一套优秀的单元测试解决方案。本文介绍使用googletest在windows下从零搭建自己的单元测试工程。
0. 环境准备
系统:Windows10
vscode: https://code.visualstudio.com/
mingw-64:https://www.mingw-w64.org/downloads/
cmake: https://cmake.org/download/
googletest: https://github.com/google/googletest
代码编辑器使用visual studio code
,下载c/c++相关插件。
下载mingw-64
和cmake
编译工具,工具文件路径加入到系统环境变量中
下载googletest
开源项目
1. 编译gtest动态链接库
搭建gtest测试工程,其实只需要将googletest的动态库与自己的单元测试程序链接起来。
命令行进入googletest
工程的googletest文件夹目录
修改该目录下的CMakeLists.txt,设置编译dll动态库选项
(如果报错GOOGLETEST_VERSION未定义就在顶部加一行 set(GOOGLETEST_VERSION 1.11.0))
Windows环境下cmake
编译:
cmake -G "MinGW Makefiles" // 如果此前执行过cmake没有编译出想要的库,需要先删除CMakeCache.txt再重新执行
生成MakeFile之后,执行mingw32
的mingw32-make
命令
mingw32-make
编译成功后,会在googletest文件夹下新生成一个bin文件夹保存libgtest.dll、libgtest_main.dll。这两个动态链接库就是我们搭建自己的单元测试工程需要的。
2. 搭建单元测试工程
整个工程目录结构如下。
include和src用来编写自己的源码和单元测试用例。
新建一个gtest文件夹,将googtest文件夹下的include
、src
直接拷贝过来;将libgtest.dll和libgtest_main.dll拷贝至lib
文件夹下
D:. ├─gtest │ ├─include │ ├─lib │ └─src ├─include ├─src |-CMakeLists.txt
这里我使用googletest项目内的sample1单元测试源码演示(sample1.h、sample1.cc、sample1_unitest.cc)。
根目录下编写CMakeLists.txt。
# 指定CMake编译最低要求版本 cmake_minimum_required(VERSION 3.14) # 给项目命名 project(sample1) # 收集c/c++文件并赋值给变量SRC_LIST_C # ${CMAKE_CURRENT_SOURCE_DIR}代表CMakeLists.txt当前项目录 file(GLOB SRC_LIST_C ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc ) # 指定.h头文件目录 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/gtest/include ) # 指定.dll链接库文件目录 link_directories(${CMAKE_CURRENT_SOURCE_DIR}/gtest/lib) # 将c文件生成可执行文件sample1.exe add_executable(sample1 ${SRC_LIST_C}) # 指定sample1 链接库libgtest.dll、libgtest_main.dll target_link_libraries(sample1 libgtest libgtest_main )
根目录执行编译命令
cmake -G "MinGW Makefiles" // 失败删除CMakeCache.txt mingw32-make
运行生成的sample1.exe测试程序,结果如图
.exe可执行文件需要和.dll库放在同一目录下运行进行链接装载;或者将.dll路径加到系统环境变量path中(相当于Linux LD_PRELOAD)
总结
搭建c/c++单元测试工程主要有几个步骤(windows下)
- 下载googletest开源测试框架,编译出libgtest.dll、libgtest_main.dll
- 拷贝googletest的include、src、lib至自己的代码工程中
- 编写cmake链接两个gtest库
- 运行测试程序
gtest测试框架使用教程都可以检索到。主要在测试代码的main函数中调用RUN_ALL_TESTS执行gtest测试宏函数
int main() { testing::InitGoogleTest(); return RUN_ALL_TESTS(); }
这篇关于windows从零搭建googletest测试工程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享