zoukankan      html  css  js  c++  java
  • 用Visual Studio创建集成了gtest的命令行工程

    gtest代码库中的sample代码

    在gtest的代码库中,包含了10个sample的代码,覆盖了gtest的常见用法,sample的代码位于以下文件夹:

    gtestsamples

    由于gtest的代码库中并没有包含这些sample代码对应的msvc工程文件,所以需要我们自行创建。下面以把sample1的代码跑起来为目的,演示如何用Visual Studio创建一个集成了gtest的命令行工程。

    用Visual Studio创建工程

    Step1 创建名为samples的Win32 Console Application

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

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

    Step4 向导自动生成的对我们有用的是以下三个文件:

    1. samples.sln
    2. samples.vcxproj
    3. samples.vcxproj.filters

    把它们拷贝到gtestmsvc文件夹下,然后再重新打开samples.sln。

    Step5 把gtest代码库下的这两个文件加入到工程中:

    1. gtest-all.cc
    2. 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,这样做主要有以下两方面原因:

    1. gtest本身的代码是不需要使用预编译头的;
    2. sample1的测试代码也是不需要使用预编译头的。

    但这种做法不一定适合于其它测试工程,比如说,当测试代码中包含了MFC派生类的时候,这种情况下的做法是打开整个工程的Precompiled header,单独关闭gtest-all.cc和gtest-main.cc的Precompiled header:

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


    系列文章索引:http://www.cnblogs.com/duxiuxing/p/4270836.html

  • 相关阅读:
    python学习笔记(一)--之list与tuple
    centos 安装redis3.0为解决数据库频繁插入数据IO性能问题
    Win32汇编木马初探
    Knockout自定义绑定my97datepicker
    iTextSharp给PDF添加水印
    技术资料整理
    css模拟阴影和小三角
    统计一个部门有多少人
    js登录界面带提示
    程序员给女朋友用HTML5制作的3D相册 (www.webhek.com)<转摘>
  • 原文地址:https://www.cnblogs.com/duxiuxing/p/4272343.html
Copyright © 2011-2022 走看看