文档首页 > > 移植指南> 移植Google Test

移植Google Test

分享
更新时间:2020/07/23 GMT+08:00

介绍

简要介绍

Google Test,也称为gtest,是基于xUnit架构的用于C ++编程语言单元测试的库。它可以在各种POSIX和Windows平台上进行编译,在修改少量源代码的情况下,对C和C++程序进行单元测试。其调试过程非常具体,满足了许多程序员和编码人员的需要。

语言:C++

一句话描述:Google Test是单元测试库

建议的版本

建议使用版本为“googletest-1.5.0”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

CentOS

7.5

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

配置编译环境

  1. 编译Google Test需要cmake 2.6版本及以上,安装cmake。

    yum install -y cmake

  2. 查看cmak版本号。

    cmake --version

    回显内容如下:

    cmake version 2.8.12.2

获取源码

执行以下命令,获取Google Test软件包。

wget https://github.com/google/googletest/archive/release-1.5.0.tar.gz

编译和安装

  1. 解压软件包。

    tar -zxvf release-1.5.0.tar.gz

  2. 进入OpenLDAP的安装目录。

    cd release-1.5.0

  3. 生成Makefile文件。

    cmake ./

  4. 生成Makefile文件后,执行make命令编译安装Google Test。
  5. 若编译安装成功,在当前目录会生成一个“libgtest.a”静态库。

运行和验证

  1. 创建一个“test.cpp”文件,并添加如下内容。

    #include<gtest/gtest.h>
    #include<stdio.h>
    int my_function(void){
    printf("I AM A TEST!\n");
    return 1;
    }
    TEST(my_function,test){
    ASSERT_EQ(1,my_function());
    }
    int main(int argc, char *argv[]){
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
    }

  2. 添加gcc-c++编译器所使用到的“INCLUDE”“LIB”环境变量。

    1. 添加环境变量。

      当前目录下有一个“include”目录,“include”目录是编译器查找头文件的路径,将该路径添加到环境变量中。

      export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/root/google-test/googletest-release-1.5.0/include/

    2. 将当前目录下的“libgtest.a”静态库复制到系统路径“/usr/lib”上,或在该目录下创建一个指向该静态库的软链接。

      ln -s /root/google-test/googletest-release-1.5.0/libgtest.a /usr/lib/libgtest.a

  3. 编译“test.cpp”文件,生成“test.o”文件。

    g++ -c test.cpp

  4. 链接静态库,生成可执行文件“a.out”

    g++ test.o libgtest.a -lpthread

  5. 执行“a.out”程序,进行测试。

    ./a.out

    回显内容如下,表示测试正常。

    [==========] Running 1 test from 1 test case.
    [----------] Global test environment set-up.
    [----------] 1 test from my_function
    [ RUN      ] my_function.test
    I AM A TEST!
    [       OK ] my_function.test (0 ms)
    [----------] 1 test from my_function (0 ms total)
    
    [----------] Global test environment tear-down
    [==========] 1 test from 1 test case ran. (0 ms total)
    [  PASSED  ] 1 test.

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问