Linux下Google Test (GTest)测试环境搭建步骤

1.下载GTEST

下载链接为:https://code.google.com/p/googletest/downloads/list

目前GTEST的最新版本为gtest-1.7.0.zip,因此我们在本文中将以这个版本作为例子讲解。

2.认识文件夹

下载并解压之后,就可以看到gooletest(gtest-1.7.0)文件夹了,里面的内容如下图所示:

这么多文件看起来很麻烦。其实,GTEST提供了对于多个不同平台的支持,例如msvc文件夹是用在微软Visual Studio中,xcode文件夹是用于Mac Xcode,codegrear文件夹是用于Borland C++ Builder,在Linux环境中,我们用的内容就是make文件夹了。

3.清除不需要的文件

前一步中我们已经讲到,很多文件是为了支持不同平台的,为了保持程序的简洁,避免混淆试听,我们在这一步把所有不需要的文件全部删除,只保留我们需要的。

只剩下了四个文件夹,看上去好多了。其实打开make文件夹,你会发现里面只有一个Makefile文件。查看Makefile文件内容,得知这是系统给出的编译samples文件夹中的第一个sample的命令。但是打开sample文件夹,又看到里面一大坨源文件。在本入门教程中,我们先不考虑那些复杂的例子。因此,打开samples文件夹,开始删文件,删到只剩下如图所示的三个文件为止。

4.改写Makefile文件

到make文件夹下,通过命令行执行 $ make && ./sample1_unittest 命令,可以看到测试的执行结果。

[email protected]5437:~/gtest/googletest/make$ make && ./sample1_unittest

g++ -isystem ../include -g -Wall -Wextra -pthread -c ../samples/sample1.ccg++ -isystem ../include -g -Wall -Wextra -pthread -c ../samples/sample1_unittest.ccg++ -isystem ../include -I.. -g -Wall -Wextra -pthread -c \            ../src/gtest-all.ccg++ -isystem ../include -I.. -g -Wall -Wextra -pthread -c \            ../src/gtest_main.ccar rv gtest_main.a gtest-all.o gtest_main.oar: creating gtest_main.aa - gtest-all.oa - gtest_main.og++ -isystem ../include -g -Wall -Wextra -pthread -lpthread sample1.o sample1_unittest.o gtest_main.a -o sample1_unittestRunning main() from gtest_main.cc[==========] Running 6 tests from 2 test cases.[----------] Global test environment set-up.[----------] 3 tests from FactorialTest[ RUN      ] FactorialTest.Negative[       OK ] FactorialTest.Negative (0 ms)[ RUN      ] FactorialTest.Zero[       OK ] FactorialTest.Zero (0 ms)[ RUN      ] FactorialTest.Positive[       OK ] FactorialTest.Positive (0 ms)[----------] 3 tests from FactorialTest (0 ms total)

[----------] 3 tests from IsPrimeTest[ RUN      ] IsPrimeTest.Negative[       OK ] IsPrimeTest.Negative (0 ms)[ RUN      ] IsPrimeTest.Trivial[       OK ] IsPrimeTest.Trivial (0 ms)[ RUN      ] IsPrimeTest.Positive[       OK ] IsPrimeTest.Positive (0 ms)[----------] 3 tests from IsPrimeTest (0 ms total)

[----------] Global test environment tear-down[==========] 6 tests from 2 test cases ran. (0 ms total)[  PASSED  ] 6 tests.

不过如果打开Makefile查看一下,就会发现这个makefile只适用于编译sample1,如果我再增加一个被测的源文件呢?又要重新写makefile,太麻烦了。于是,在这一步,我们改写一下Makefile。

上一步我们讲到,现在只剩下4个文件夹(include,make,samples,src),既然make里面的唯一一个文件也要被改写,那也没必要留这个文件夹了。于是,你要做的第一件事情就是,把make文件夹,连同里面的Makefile文件全部删除……然后,进入samples文件夹,自己创建一个文件,名为Makefile,如图所示

然后,打开Makefile文件,写入以下内容。这个新的Makefile是由刚才被我们删除的Makefile改写而来的,如果你好奇的话可以比较一下它们之间的差别,里面涉及到一些makefile的语法和函数,如果不熟的话,你可能需要花费几分钟查一下资料去了解他们。

注意下图中改写的Makefile第32行,我们编译的是后缀名为cpp的文件,而原来给的例子却以cc结尾。因此,你还要做一件事情,就是把sample1.cc的文件名改为sample1.cpp,把sample1_unittest.cc的文件名改为sample1_unittest.cpp,就大功告成了。

GTEST_DIR = ..
USER_DIR = .
CPPFLAGS += -isystem $(GTEST_DIR)/include
CXXFLAGS += -g -Wall -Wextra -pthread
TESTS = run_test
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h                 $(GTEST_DIR)/include/gtest/internal/*.h
FILES =$(foreach d,$(USER_DIR),$(wildcard $(d)/*.cpp))OBJS =$(patsubst %.cpp,%.o,$(FILES))

all : $(TESTS)

clean :
    rm -f $(TESTS) gtest_main.a *.o

.PHONY :clean
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
gtest-all.o : $(GTEST_SRCS_)
    $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c             $(GTEST_DIR)/src/gtest-all.cc

gtest_main.o : $(GTEST_SRCS_)
    $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c             $(GTEST_DIR)/src/gtest_main.cc

gtest_main.a : gtest-all.o gtest_main.o
    $(AR) $(ARFLAGS) [email protected] $^

%.o :%.cpp    $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o [email protected]
$(TESTS) : $(OBJS) gtest_main.a    $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o [email protected]

现在我们的文件夹有三个(include,src,samples),我们自己被测的程序放在samples文件夹中。这个文件夹的名字看着也比较不爽,你可以把它改为mycode或者testcode,然后GTEST根目录的文件夹名称gtest-1.7.0也可以改为mygtest之类,。如图所示:

现在,进入命令行进行编译执行操作: $ make && ./run_test,就可以看到结果了,如图所示:

6.添加自己的测试函数

参考http://www.linuxidc.com/Linux/2015-05/116894.htm

时间: 2024-10-06 14:54:27

Linux下Google Test (GTest)测试环境搭建步骤的相关文章

linux下nginx+php+mysql 自助环境搭建

++++++++++++++++++++++++++++++++++++++++++++++linux下nginx+php+mysql环境搭建++++++++++++++++++++++++++++++++++++++++++++++操作系统 : [CentOS6.0]服务器 : [nginx-1.1.8]PHP : [php-5.2.6]数据库 : [mysql-5.1.59]++++++++++++++++++++++++++++++++++++++++++++++准备安装软件(downlo

linux下arm平台Qt编译环境搭建与解析

一.概述: ???? 我们知道QTcreator.这仅仅是个IDE,他包含了一个编译器--qmake.这两者的关系与codeblocks和g++的关系一样,首先要明确这些. ???? 而我们在linux下搭建arm平台的QT编译环境,基本的是要使用适合arm的qmake.正如我们编译在arm上使用c++程序时要用arm-none-linux-gnueabi-g++一样.而qmake仅仅是我们使用的工具,自然不须要也不能换.所以我们仅仅要使用arm-none-linux-gnueabi-g++编译

Linux下C++的编程——开发环境搭建与第一个程序

上一篇文章Linux下C++的编程--开偏介绍中我们已经介绍了GUN.GCC.G++等一些重要的概念,现在应该开始动手实践了! 开发工具的安装 环境 Distributions版本:CentOS 6.7 Linux内核片:2.6.32-573.3.1.el6.i686 一般Linux安装完之后默认就已经安装了GCC(GNU Compiler Collection),你可以查看一下gcc和g++的版本号检查gcc和g++是否已经安装. [luowf@luoweifu ~]$ gcc -v gcc

Linux下Qt4.5.3开发环境搭建

操作系统:Ubuntu12.04 搭建环境:Qt4.5.3开发环境--编译库文件和qmake工具 ①到http://download.qt.io/archive/qt/4.5/网站下载编译源文件,然后放到Ubuntu系统里进行解压: tar –xzvf qt-x11-opensource-src-4.5.3.tar.gz tar –xzvf qt-embedded-linux-opensource-src-4.5.3.tar.gz 这两个源码包的作用:QT-X11-4.5.3是运行于linux平

Linux下JDK Tomcat MySQL基本环境搭建

1. 安装JDK 1.上传jdk-7u45-linux-x64.tar.gz到Linux上 2.解压jdk到/usr/local目录 tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local/ 3.设置环境变量,在/etc/profile文件最后追加相关内容 vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export PATH=$PATH:$JAVA_HOME/bin 4.刷新环境变量 s

[软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)

本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如下知识有一些了解: (1)C/C++编程方法 (2)makefile的编写 (3)linux命令行操作 (4)GTEST背景知识:它是用来干什么的?它用什么语言编写的?它的一些基本语法?等等 以上知识不需要做到熟能生巧,只要达到入门级别,使用GTEST不会费任何力气,毕竟GTEST也不是一个高门槛的

Ubuntu下(Linux+Apache+MYSQL+PHP, LAMP)环境搭建

最近开始玩PHP,于是试着搭建一下开发环境并做个记录,以备日后再使用起来方便可查. 第一步 确保软件包是最新的 <span style="font-size: 18px;">sudo apt-get update</span> 第二步 安装Apache2 <span style="font-size: 18px;">sudo apt-get install apache2</span> 安装之后测试:在浏览器中打开 h

搭建linux下的DNW烧写环境(替代windows下的超级串口终端和DNW)

软件环境:ubuntu 13.10 硬件环境:TQ2440开发板 由于我的PC机操作系统是win8.1,不知何故死活装不上天嵌给的USB下载驱动,所以在PC下烧写开发板系统和裸机程序变得不可能,后来经过一番摸索,发现完全可以在linux下用minicom代替windows下的超级串口终端,用dnw2(linux版本)代替windows下的DNW,下面是具体的环境搭建过程: 搭建linux下的minicom串口通信环境: 1.1 下载并安装minicom,在终端输入命令:sudo apt-get

Linux测试环境搭建的学习建议

随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基础开始 常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linux 的基础之后,应该就可以很轻易的解决掉这方面的问题.而有些朋友们常常一接触Li