GTest基础学习-01-开发环境安装和配置

       新学习一个知识点,学习一个主流的C++单元测试框架googletest,简称GTest。GTest也模仿了XUnit单元测试框架的风格,由于C++语言的特点,GTest一般都是开发人员使用,而且使用真的不算多,因为开发人员都不喜欢写测试代码。如果想要做C++产品的白盒测试或者接口测试,学习GTest是一个比较好的单元测试框架,会帮助我们提升编写单元测试用例的速度。

       GTest网上有很多文章,很多都是介绍第一篇环境搭建,然后就不了了之。确实看到过一位大牛写过GTest的一个系列文章,写的很好。我想我接下来写的一个学习笔记,会参考这个系列。我的想法是,写的更详细一些,让更多测试开发能够参与到C++的单元测试中来。

 

开发环境简介

  • VS 2015 Update03版本,很多企业目前还是使用这个版本来开发C++软件产品
  • Cmake-gui.exe,用来编译C++,但是我们这里只是使用到一次,和本次单元测试关联很小
  • googletest, 这个直接在github进行下载zip到本地。

这里重点介绍googletest的环境配置过程。其实vs 2017社区版本也可以,cmake-gui.exe下载比较费劲,官网基本上下载不了,大家自行搜索解决。

 

1.GTest版本和下载

下载地址:https://github.com/google/googletest/releases

这个页面是googletest发版页面,可下载不同版本,这里我当然选择最新v1.10.0版本

GTest基础学习-01-开发环境安装和配置_第1张图片

点击上面那个zip,下载到本地。

 

2.Cmake-gui.exe编译GTest生成VS工程

解释一些这里为什么要使用cmake-ui.exe,主要是现在的企业开发,基本上都是基于64位操作系统。网上介绍GTest的文章都是32位版本。这里利用Cmake-gui.exe可以帮助我们生成32位还是64位,哪一个VS版本可以打开的工程文件。具体操作如下

上面解压出来zip文件内容结构如下

GTest基础学习-01-开发环境安装和配置_第2张图片

一般来说单元测试用GTest就可以,有时候需要打桩做白盒测试,可以使用GMock框架。到这里,我们依然不知道怎么打开这个工程,获取相关的GTest头文件和lib文件。

先在这文件夹下新建一个bin文件夹,待会用来输出编译之后的文件内容

GTest基础学习-01-开发环境安装和配置_第3张图片

到以上路径,双击打开cmake-ui.exe,

GTest基础学习-01-开发环境安装和配置_第4张图片

先上面两个文件路径选择如上图,点击Confiure,弹出页面设置如下

GTest基础学习-01-开发环境安装和配置_第5张图片

这是关键,能选择x64,如果你是vs2017 第一个就选vs 2017,这里我用vs 2015,点击Finish,等待一会出现如下页面

GTest基础学习-01-开发环境安装和配置_第6张图片

点击Generate,几秒最后一行日志显示 Generate done,一般这里不会出错。关闭这个对话框,到bin文件夹看看

GTest基础学习-01-开发环境安装和配置_第7张图片

上面红圈都是一些vs工程,选择红圈那个解决方案入口,双击,默认使用2015打开,接下来就可以进行编译。

GTest基础学习-01-开发环境安装和配置_第8张图片

接下来就可以选择Release还是Debug进行编译,如果不考虑多线程执行选项。

GTest基础学习-01-开发环境安装和配置_第9张图片

可右键gtest这工程,选择属性

GTest基础学习-01-开发环境安装和配置_第10张图片

这个多进程不同值可以参考你自己的实际项目,这里我们默认就好。

接下来开始编译 Debug X64

GTest基础学习-01-开发环境安装和配置_第11张图片

等一会,日志输出应该没有失败的

GTest基础学习-01-开发环境安装和配置_第12张图片

再次切换到Release X64 点击编译。然后可以关闭这个VS 解决方案,退出VS,接下来看看编译之后的GTest的文件夹内容

我们主要是获取Debug或Release下的gtest和gmock相关的lib文件,后续会用到

GTest基础学习-01-开发环境安装和配置_第13张图片

GTest基础学习-01-开发环境安装和配置_第14张图片

GTest基础学习-01-开发环境安装和配置_第15张图片

以上是lib文件的路径,需要区分debug和release版本,上面Debug文件夹中gtestd.lib, 这个d单词表示debug。

顺便找到include的文件夹位置

GTest基础学习-01-开发环境安装和配置_第16张图片

GTest基础学习-01-开发环境安装和配置_第17张图片

 

3.GTest工程创建和配置

打开VS2015,新建一个解决方案。选择win32控制台应用程序,取一个名称LearnGtest

GTest基础学习-01-开发环境安装和配置_第18张图片

点击确定,然后一直点击默认下一步,直到完成向导,看到下面页面

GTest基础学习-01-开发环境安装和配置_第19张图片

接下来开始配置工程属性,需要用到上面Gtest的include文件夹路径和相关lib文件

1.先配置Debug X64环境

虽然我们选择win32 控制台类型,默认是x86,这里我们改成Debug x64.

点击解决方案名称,右键-属性

GTest基础学习-01-开发环境安装和配置_第20张图片

根据上面红圈位置,点击找到上面这张图,然后添加debug的gtest的include文件夹的路径

GTest基础学习-01-开发环境安装和配置_第21张图片

点击确定,然后点击左侧 “链接器”

GTest基础学习-01-开发环境安装和配置_第22张图片

点击右侧,这里添加debug版本的gtestd.lib

GTest基础学习-01-开发环境安装和配置_第23张图片

点击 两次确定 关闭属性配置页面

 

2.找到main入门,修改代码如下

LearnGtest.cpp代码修改如下并保存

// LearnGtest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "gtest/gtest.h"


int main(int argc, char **argv)
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

点击 生成-生成解决方案,观察日志

GTest基础学习-01-开发环境安装和配置_第24张图片

这个错误是我们当前VS工程LearnGtest的属性面板中关于多线程这块选择值和我们最早编译Gtest这块不一致,改成一致就好。这里我们是练习项目,所以该LearnGtest工程属性就好。如果是实际工作项目,肯定需要回到VS 2015打开Gtest,把多线程改成和项目一致,再次编译debug和relase版本的Gtest.

GTest基础学习-01-开发环境安装和配置_第25张图片

这里改成和gtest Debug类型一致就可以,再次点击生成解决方案

GTest基础学习-01-开发环境安装和配置_第26张图片

到了这里,没有出错,很好,然后来运行这个main方法,看看输出内容

GTest基础学习-01-开发环境安装和配置_第27张图片

到了这里,表示我们Debug版本下gtest环境搭建成功。接下来和上面截图步骤一样,也需要把Release的搭建好。

GTest基础学习-01-开发环境安装和配置_第28张图片

也需要改多线程,这里是选择MT。确保在Release环境也能生成解决方案成功,点击调试-开始执行(不调试)运行后可以打开cmd控制台,打印gtest PASS的输出内容。

 

到这里,我们接下来需要学习Gtest的开发环境都配置完成。这里头文件和lib都是用gtest,如何后面需要使用到gmock,我们当前LearnGtest这个工程可以把gmock相关的lib和头文件配置好,也就可以使用gmock的功能。

 

 

你可能感兴趣的:(C++单元测试框架Gtest,C++单元测试框架,Gtest环境搭建)