gtest github:

https://github.com/google/googletest

学习:玩转Google开源C++单元测试框架Google Test系列(gtest)(总)

一、安装

1、gtest不是传统的unix安装模式(./configure; make; make install)
2、进入 ${GTEST_DIR}

g++ -isystem include -I./ -pthread -c src/gtest-all.cc

ar -rv libgtest.a gtest-all.o

(We need -pthread as Google Test uses threads.)

官方指导:https://github.com/google/googletest/blob/master/googletest/README.md

参考:http://blog.csdn.net/macchan/article/details/17657231#

二、验证是否成功

cd ${GTEST_DIR}/make 会发现这个文件下有个Makefile
make 会生成一些sample执行文件
选一个执行,./sample1_unittest,如果看到典型的gtest输出log就说明成功了

三、使用示例

1、安装与验证完毕之后还不能直接使用
  将${GTEST_DIR}/include/gtest这个目录拷贝到/usr/local/include
  将${GTEST_DIR}/libgtest.a拷贝到/usr/local/lib
  这样就可以直接使用头文件<gtest/gtest.h>和静态库libgtest.a
2、创建~/test目录,然后将${GTEST_DIR}/samples里面的sample1.cc sample1.h sample1_unittest.cc,拷贝过来。
3、写一个Test.cc,代码如下

#include "smaple1.h"
#include <gtest/gtest.h> int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc,argv);
RUN_ALL_TESTS():
return ;
}

4、编译过程如下
  $g++ -o sample1.o -c sample1.cc
  $g++ -o sample1_unittest.o -c sample1_unittest.cc
  $g++ -o Test.o -c Test.cc
  $g++ -o main sample1.o sample1_unittest.o Test.o -lgtest -lpthread
  由于/usr/local/include被拷贝了gtest目录 /usr/local/lib被拷贝了libgtest.a所以可以
  直接使用<gtest/gtest.h>与-lgtest,另外也需要libpthread.a所以要加-lpthread
5、最后生成可执行文件main,$./main的输出结果与上面的./sample1_unittest一样的结果。

四、结合cmake使用gtest

参考:http://stackoverflow.com/questions/33638433/setup-google-test-in-clion

样例:https://github.com/kaizouman/gtest-cmake-example

具体步骤:

1、在已有的工程下创建一个单元测试目录${unit_test}

2、创建${unit_test}/gtest.cpp

#include "gtest/gtest.h"

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

3、创建${unit_test}/test1.cpp

#include <gtest/gtest.h>

TEST(FooTest, Test1) {
EXPECT_EQ(, );
EXPECT_TRUE( > );
}

4、创建${unit_test}/CMakeLists.txt

set(EXECUTABLE_OUTPUT_PATH ../build/bin)

include_directories(../include)

add_executable(runUnitTests
gtest.cpp
test1.cpp) target_link_libraries(runUnitTests
gtest
pthread)

编译运行

gtest、cmake使用的更多相关文章

  1. [Ubuntu篇] 在ubuntu上源码编译gtest,编写gtest-config.cmake并测试

    本文首发于个人博客https://kezunlin.me/post/4a1427cf/,欢迎阅读! compile gtest on ubuntu 16.04 Guide compile gtest ...

  2. cmake,gtest单元测试程序

    参考:http://blog.csdn.net/stdcoutzyx/article/details/8284183 PROJECT (HELLO) SET(SRC_LIST main.c) MESS ...

  3. Google C++单元测试框架---Gtest框架简介(译文)

    一.设置一个新的测试项目 在用google test写测试项目之前,需要先编译gtest到library库并将测试与其链接.我们为一些流行的构建系统提供了构建文件: msvc/ for Visual ...

  4. 直接在CMake项目中编译GoogleTest和GoogleMock作为项目的一部分

    直接在CMake项目中编译GoogleTest和GoogleMock作为项目的一部分 本文是关于如何将GoogleTest和GoogleMock在没有预先编译安装在机器的情况下,直接在项目中作为项目的 ...

  5. 简单易懂的单元测试框架-gtest(二)

    简介     事件机制用于在案例运行前后添加一些操作(相当于挂钩函数).目前,gtest提供了三种等级的事件,分别: 全局级,所有案例执行的前后 TestSuite级,某一个案例集的前后 TestCa ...

  6. 简单易懂的单元测试框架-gtest(一)

    简介     gtest是google开源的一个单元测试框架,以其简单易学的特点被广泛使用.该框架以第三方库的方式插入被测代码中.同其他单元测试框架相似,gtest也通过制作测试样例来进行代码测试.同 ...

  7. ubuntu 安装 google Gtest [转]有效性待验证

    最近在做一些东西,用过gtest,废话少说,现讲其再ubuntu上安装的 方法贴出来,以供朋友们参考: 安装gtest分三步: 1.安装源代码 在ubuntu的桌面上,右键选择打开终端,在终端中输入如 ...

  8. Mac下GTest的基本使用

    Mac下GTest的基本使用 gtest全称Google C++ Testing Framework,它是从谷歌内部诞生并受到业界追捧的一个非常优秀的测试框架,支持如自动发现测试.自定义断言.死亡测试 ...

  9. gtest 学习

    mac 安装gtest 1.git clone https://github.com/google/googletest 2.cd googletest 3.brew install cmake如果没 ...

随机推荐

  1. 使用 Zephir 轻松构建 PHP 扩展

    简介: 通过 PHP 扩展, 我们可以在 php 代码中使用一些特定的方法(大部分的 php 扩展都是用 C 写的). 比如,在 PHP 中需要与 SQLite3 交互,我们可以自己写方法与之进行连接 ...

  2. 0xe7f001f0!?NDK调试过程,无故抛出SIGSEGV。

    arm调试过程,如果抛一个SIGSEGV,地址在 0xe7f001f0 附近,原因居然是因为我在调试.当我使用n指令跳到下一行代码时,往往变成了continue指令一样地执行.还不确定地抛出SIGSE ...

  3. Java虚拟机详解(十)------类加载过程

    在上一篇文章中,我们详细的介绍了Java类文件结构,那么这些Class文件是如何被加载到内存,由虚拟机来直接使用的呢?这就是本篇博客将要介绍的——类加载过程. 1.类的生命周期 类从被加载到虚拟机内存 ...

  4. selenium针对浏览器滚动条的操作

    我们在实际自动化测试过程中,肯定会遇到当前页面显示不到我们定位的元素.这就需要下拉滚动条才能显示出我们的元素: 而滚动条的按钮又是我们定位不到的,所以需要使用js脚本来完成: 1.先来说我们的下拉滚动 ...

  5. Windows Server 2008 服务器重启后卡死在Windows Update 页面问题处理

    Windows Update 服务器 服务器是联想RD640 操作系统Windows Server 2008 R2 Enterprise版 补丁版本是SP1 远程windows服务器时,一直处于远程建 ...

  6. 老男孩python 自学day09 函数开始

    什么是函数? 函数用关键字def定义 语法: def 函数名(形参): 函数体 return 调用 函数名(实参) 命名规则:和变量一样 1. 由数字, 字母, 下划线组成 2. 不能数字开头. 更不 ...

  7. Python爬虫之Selenium的常用方法

    1.单个元素的选取 find_element_by_id      通过标签属性Id查找元素 find_element_by_name      通过标签属性name查找元素 find_element ...

  8. NTP服务编译安装报错:ntpd.c:124:29: 致命错误:sys/capability.h:没有那个文件或目录

    缺少libcap-devel [root@localhost libcap]# cd /mnt/ [root@localhost mnt]# rpm -Uvh libcap*

  9. 【浅析】|白话布隆过滤器BloomFilter

    通过本文将了解到以下内容: 查找问题的一般思路 布隆过滤器的基本原理 布隆过滤器的典型应用 布隆过滤器的工程实现 场景说明: 本文阐述的场景均为普通单机服务器.并非分布式大数据平台,因为在大数据平台下 ...

  10. Flask入门学习——自定义一个url转换器

          我们知道,flask的url规则是可以添加变量部分的,这个参数变量是写在尖括号里的,比如:/item/<id>/,如果需要指出参数的类型要符合<converter:vai ...