用Visual Studio创建集成了gtest的命令行工程
gtest代码库中的sample代码
在gtest的代码库中,包含了10个sample的代码,覆盖了gtest的常见用法,sample的代码位于以下文件夹:
gtest\samples
由于gtest的代码库中并没有包含这些sample代码对应的msvc工程文件,所以需要我们自行创建。下面以把sample1的代码跑起来为目的,演示如何用Visual Studio创建一个集成了gtest的命令行工程。
用Visual Studio创建工程
Step1 创建名为samples的Win32 Console Application

Step2 在Application Settings中去掉Precompiled header勾选项

Step3 删掉向导自动生成的这些文件,保存后Close Solution。

Step4 向导自动生成的对我们有用的是以下三个文件:
- samples.sln
- samples.vcxproj
- samples.vcxproj.filters
把它们拷贝到gtest\msvc文件夹下,然后再重新打开samples.sln。
Step5 把gtest代码库下的这两个文件加入到工程中:
- gtest-all.cc
- gtest_main.cc

Step6 左侧目录树选择“Configuration Properties > C/C++ > General”,在右侧“Additional Include Directories”中添加Include路径,分别指向gtest的根目录和include目录:

Step7 再次确认一下没有使用Precompiled header

Step8 至此,我们已经创建好了一个集成了gtest的工程,它是一个命令行程序,编译之后运行效果如下:

添加测试和被测试代码
在上面这个工程中,加入sample1的测试和被测试代码,即形成了sample1的单元测试工程:

编译之后运行,即可看到测试用例的执行结果:

关于Precompiled header
上面的这个例子,从一开始创建工程就关闭了Precompiled header,这样做主要有以下两方面原因:
- gtest本身的代码是不需要使用预编译头的;
- sample1的测试代码也是不需要使用预编译头的。
但这种做法不一定适合于其它测试工程,比如说,当测试代码中包含了MFC派生类的时候,这种情况下的做法是打开整个工程的Precompiled header,单独关闭gtest-all.cc和gtest-main.cc的Precompiled header:

一句话小结就是,根据具体的测试代码来设置Precompiled header。

系列文章索引:http://www.cnblogs.com/duxiuxing/p/4270836.html
用Visual Studio创建集成了gtest的命令行工程的更多相关文章
- Visual Studio 2012系统环境变量设置(命令行)
方法1.运行脚本vsvars32.bat:D:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\vsvars32.bat ...
- Visual Studio创建跨平台移动应用_02.Cordova Extension
1简介 本章节是关于Visual Studio Tools for Apache Cordova的,目前此产品只发布了预览版.Visual Studio for Apache Cordova帮助熟悉V ...
- 使用 Cordova+Visual Studio 创建跨平台移动应用(1)
1简介 本章节是关于Visual Studio Tools for Apache Cordova的,目前此产品只发布了预览版.Visual Studio for Apache Cordova帮助熟悉V ...
- 使用Visual Studio创建简单的自己定义Web Part 部件属性
使用Visual Studio创建简单的自己定义Web Part 部件属性 自己定义属性使用额外的选项和设置拓展你的Web part部件.本文主要解说怎样使用Visual Studio创建简单的自己定 ...
- 使用Visual Studio 创建新的Web Part项目
使用Visual Studio 创建新的Web Part项目 Web Part是你将为SharePoint创建的最常见的对象之中的一个.它是平台构建的核心基块. 1. 管理员身份打开Visual St ...
- 使用Visual Studio 创建可视Web Part部件
使用Visual Studio 创建可视Web Part部件 可视Web Part部件是很强大的Web 部件.它提供内置设计器创建你的用户界面. 本文主要解说怎样使用Visual Studio 创建可 ...
- 【翻译】使用Visual Studio创建Asp.Net Core MVC (一)
This tutorial will teach you the basics of building an ASP.NET Core MVC web app using Visual Studio ...
- Visual studio 创建项目失败vstemplate
Visual studio 创建项目失败 提示 the vstemplate file references the wizard class 'Microsoft.VisualStudio.WinR ...
- Xamarin 中Visual Studio创建项目提示错误
Xamarin 中Visual Studio创建项目提示错误 错误信息:Object reference not set to an instance of an object 出现这种情况,是由于没 ...
随机推荐
- 警告"Local declaration of 'XXX' hides instance variable"原因
Local declaration of 'XXX' hides instance variable 是因为本地变量名跟函数变量名同名 ,.在命名上要注意.....
- 动态代理 Proxy InvocationHandler
前奏 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等. 代理类与委托类之间通常 ...
- Android中SQLite使用
现在的主流移动设备像Android.iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上 ...
- 封装对Cookie和Session设置或取值的类
public class CookieHelper : System.Web.SessionState.IReadOnlySessionState { public static void Se ...
- vedeo与audio标签的使用
浏览器原生支持音视频无疑是一件大事——尤其对移动设备而言.不依赖Flash,意味着更加省电.安全和快速的播放体验,而且只需要引入一个标签,就能播放自如. <video src="dao ...
- Jquery~$when_done_then的用法
对于$.ajax请求来说,如果层级比较多,程序看起来会比较乱,而为了解决这种问题,才有了$when...done...fail...then的封装,它将$.ajax这嵌套结构转成了顺序平行的结果,向下 ...
- ASP.NET5中间件
小的应用组件可以包含到Http请求管道当中,ASP.NET5 集成了中间件,被包在了应用程序的Configure方法当中. 1. 什么是中间件 中间件是一组被装到应用程序管道的请求和响应中的组件.每一 ...
- (转)mysql 的 find_in_set函数使用方法
举个例子来说: 有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等 现在有篇文章他既是 头条,又是热点,还是图文, type中以 1 ...
- addEventListener之handleEvent
addEventListener() 方法是将指定的事件监听器注册到目标对象上,当该对象触发指定的事件时,指定的回调函数就会被执行.语法: element.addEventListener(type, ...
- Javascript深度克隆一个对象
Javascript中的对像赋值与Java中是一样的,都为引用传递.就是说,在把一个对像赋值给一个变量时,那么这个变量所指向的仍就是原来对 像的地址.那怎么来做呢?答案是“克隆”. 克隆有两种方法:一 ...