• 本文以VS2019为例,自己的工程使用Debug x64,多线程调试DLL(/MDd),用户可以根据自己需求更改配置,只要所有配置前后统一即可。
  • 第一步:clone Google Test源码
    • 打开https://github.com/google/googletest,通过git克隆或者下载ZIP的方式得到源码。

  • 第二步:生成Google Test的lib
    • 在VS2019中,导入.\googletest\msvc\2010\gtest-md.sln
    • 修改vs中的解决方案配置,将其修改为和你要测试的工程配置相同,这里以“Debug x64”为例
      • vs中,Debug和Release生成的lib库是不同的,分别为gtestd.lib和gtest.lib,两个是不同的,不可混用。
    • 在解决方案资源管理器中修改工程的属性
      • 确保配置为Debug x64。
      • 修改配置属性-C/C++-代码生成-运行库,将其修改为和你要测试的工程配置相同,这里以“多线程调试DLL(/MDd)”为例

    • 编译,生成
      • debug、release两个模式需要分别设置、编译生成。
      • 编译后,在msvc/gtest/下有debug、release两个文件夹。
      • 共生成4个文件
        • googletest\msvc\2010\gtest\x64-Debug - Debug方案下的二进制文件:gtestd.lib、gtest_maind.lib(注意主文件名的d后缀)
        • googletest\msvc\2010\gtest\x64-Release - Release方案下的二进制文件:gtest.lib、gtest_main.lib
  • 第三步:单元测试
    • 在要测试的工程中,添加-新建项-Google Test
    • 为要测试的工程添加lib。
      • 首先确保解决方案配置和工程配置中都是Debug x64。
      • 配置属性-C/C++-代码生成-运行库是多线程调试DLL(/MDd)。
      • 配置属性-C/C++-常规”,在“附加包含目录”中添加“xxx\googletest\include;”(xxx为源码的路径)。

      • 配置属性-链接器-输入-附加依赖项,添加从googletest生成的两个lib:gtest_maind.lib和gtestd.lib。

  • 第四步:可以写测试了,写在你新建的Google Test.cpp里,作为启动项运行即可
#include "gtest/gtest.h"
#include "TestFunction.h" //MyAdd(int a, int b) { return a+b; } TEST(MyAdd, 4plus4)
{
EXPECT_EQ(MyAdd(,), );
EXPECT_TRUE(true);
}//通过 TEST(MyAdd, 5plus5)
{
EXPECT_EQ(MyAdd(, ), );
EXPECT_TRUE(true);
}//不通过 int main(int argc, char* argv[])
{
testing::InitGoogleTest(&argc, argv);//将命令行参数传递给gtest
return RUN_ALL_TESTS(); //RUN_ALL_TESTS()运行所有测试案例
system("pause");
}
  • 运行结果

Google Test入门教程:从下载到运行的更多相关文章

  1. Google Guava入门教程

    以下资料整理自网络 一.Google Guava入门介绍 引言 Guava 工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [cachi ...

  2. Ant Design Pro入门教程,安装,运行(V5 Typescript版)

    [前言] 找了很多Admin模板,最后还是看中了AntDesignPro这个阿里巴巴开源的Admin框架,长这样(还行吧,目前挺主流的): 官网地址:https://pro.ant.design/in ...

  3. testng入门教程1在testng运行一个简单的testcase

    在eclips运行java,创建一个Java类文件名TestNGSimpleTest  C:\ > TestNG_WORKSPACE import org.testng.annotations. ...

  4. Webpack 入门教程

    Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. 本章节基于 Webpack3.0 测试通过. 从图中我们可以看出,W ...

  5. PyCharm 2017 官网 下载 安装 设置 配置 (主题 字体 字号) 使用 入门 教程

    一.安装 Python 3.6 首先,要安装好 Python 3.6.如果你还没有安装,可以参考咪博士之前的教程 Python 3.6.3 官网 下载 安装 测试 入门教程 (windows) 二.官 ...

  6. Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)

    1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...

  7. ABP入门教程4 - 初始化运行

    点这里进入ABP入门教程目录 编译解决方案 重新生成解决方案,确保生成成功. 连接数据库 打开JD.CRS.Web.Host / appsettings.json,修改数据库连接设置Connectio ...

  8. 1,[VS入门教程] 使用Visual Studio写c语言 入门与技巧精品文~~~~下载安装篇

    Microsoft Visual Studio是微软(俗称巨硬)公司出品的强大IDE(Integrated Development Environment 集成开发环境),功能强大齐全,界面舒服之类的 ...

  9. 《VSTO开发入门教程》配套资源下载

    <VSTO开发入门教程> 刘永富 著 清华大学出版社 封面截图 购书网址 京东网 淘宝网 配套资源到如下页面寻找: https://www.cnblogs.com/ryueifu-VBA/ ...

随机推荐

  1. 详解javascript中的this的指向问题

    首先,要明白this 既不指向函数自身,也不指函数的词法作用域.this一般存在于函数中,表示当前函数的执行上下文,如果函数没有执行,那么this没有内容,只有函数在执行后this才有绑定. 然后,我 ...

  2. Eclipse Paho MQTT Utility

    下载地址: https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho. ...

  3. javascript简单实现深浅拷贝

    深浅拷贝知识在我们的日常开发中还算是用的比较多,但是之前的状态一直都是只曾听闻,未曾使用(其实用了只是自己没有意识到),所以今天来跟大家聊一聊js的深浅拷贝: 首先我们来了解一下javascript的 ...

  4. [python]变量和赋值

    1. python的变量名以字母开头,包含字母.数字.下划线. 2. python是动态类型语言,即不需要预先声明变量的类型.变量的类型和值在赋值的时候被初始化. 变量赋值通过等号来执行. 代码: c ...

  5. HihoCoder - 1617 方格取数

    HihoCoder - 1617 (从群主那里借鉴来的, 群主好强啊) 题意:中文题不解释... 题解: dp[X][i][j] 代表的是X是坐标之和 第一个人 走到位置 dp[i][x-i] 第二个 ...

  6. Linux基础提高_sudo,行为审计,跳板机

    sudo 临时给普通用户赋予root权限的一种方式 echo "%wheel        ALL=(ALL)       NOPASSWD: ALL" >>/etc/ ...

  7. Kafka服务端之网络连接源码分析

    #### 简介 上次我们通过分析KafkaProducer的源码了解了生产端的主要流程,今天学习下服务端的网络层主要做了什么,先看下 KafkaServer的整体架构图 ![file](https:/ ...

  8. mysql设置updatetime字段每次修改时自动更新

    我们在数据库表设计阶段中都会加上CreateTime, UpdateTime字段, 在重要业务字段更新的时候,都会重新赋值UpdateTime字段,这个对后期查找分析业务数据变更时非常有用. 但是现在 ...

  9. React Hooks 你不来了解下?

    前言 最近在看 React 的新语法-- React Hooks,只能一句话概括:React 语法真的是越来越强大,越写代码越少. 强烈推荐还没看 React Hooks 的同学去学习下,这会让你写r ...

  10. ImageView的功能和使用

    ImageView继承自View类,它的功能用于显示图片, 或者显示Drawable对象 xml属性: src和background区别 参考:http://hi.baidu.com/sunboy_2 ...