zoukankan      html  css  js  c++  java
  • VS 2015 搭建Google Test

    转 http://www.cnblogs.com/jycboy/p/6001153.html

    1.下载googletest: https://github.com/google/googletest 

    2.以VS为例,在VS中导入msvc/gtest.sln,然后重新编译,debug、release两个模式都要编译。编译后,在msvc/gtest/下有debug、release两个文件夹。

      msvcgtestDebug - Debug方案下的二进制文件:gtestd.lib、gtest_maind.lib(注意主文件名的d后缀)
      msvcgtestRelease - Release方案下的二进制文件:gtest.lib、gtest_main.lib

      至此,准备阶段完成。(也可以不用VS构建,用Xcode、GNU make、 Borland C++ Builder)。

    3.创建具体的测试项目

        3.1  在VS2015中,创建WIN32控制台应用;

        3.2  右击工程名,点击“属性”,配置工程属性; 展开“配置属性——C/C++——常规”,在“附加包含目录”中添加“.gtest-1.7.0include”(省略部分为gtest-1.8.0的路径);

        3.3  展开“C/C++——代码生成”,在“运行库”中修改为“多线程调试(/MTd)”;(其实你也可以选择动态链接(/MD),前提是你之前编译的gtest也使用了同样是/MD选项

        3.4 展开“链接器——输入”,在“附加依赖项”中添加第二步生成的gtestd.lib,附加上正确的路径;在这里有个小技巧,.lib是静态库文件,你可以把它们放到一个专门的lib文件夹下,lib文件夹放哪自己看着办吧,我是放在了googletest文件夹下。

    上述是以Debug模式为例,Release模式就是把3.3、3.4换成对应于Release的就可以。

    4. 项目代码

      stdafx.h:

    1
    2
    3
    4
    #include "targetver.h"
     
    #include <stdio.h>
    #include <tchar.h>

      FirstGtest.cpp:

    1
    2
    3
    4
    5
    6
    7
    8
    #include "stdafx.h"
    #include <gtestgtest.h>
     
    int _tmain(int argc, _TCHAR* argv[])
    {
        testing::InitGoogleTest(&argc, argv);
        return RUN_ALL_TESTS();
    }

      add.cpp:

    1
    2
    3
    4
    5
    6
    #include "stdafx.h"
     
    int Add(int a, int b)
    {
        return a + b;
    }

      testCase.cpp:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include "stdafx.h"
    #include <gtestgtest.h>
    extern int Add(int a, int b);
     
    TEST(testCase, test0)
    {
        EXPECT_EQ(14, Add(4, 10));//EXPECT_EQ是比较两个值是否相等
    }
     
    TEST(testCase, test1)
    {
        /*本用例不过*/
        EXPECT_EQ(6, Add(5, 7));
    }
     
    TEST(testCase, test2)
    {
        EXPECT_EQ(28, Add(10, 18));
    }

      从上边可以看出:3个测试中一个失败,两个成功。

    5. 编译成功如下:

    6.如果出现以下错误:就是3.3步修改错了。

    7.Release模式下:

        3.3  展开“C/C++——代码生成”,在“运行库”中修改为“多线程(/MT)”;

        3.4 展开“链接器——输入”,在“附加依赖项”中添加第二步生成的gtest.lib,附加上正确的           路径;

    OK。

  • 相关阅读:
    datatable转json
    GridView 自定义表头
    jquery之each
    验证码
    C# 添加,修改,删除文件夹/文件集合
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    bootstrap 简易模版
    容易上手-类似ERP系统 简单特效
    定义文字样式-插件
    获取当前url并指定url中的字符 效果
  • 原文地址:https://www.cnblogs.com/codingtao/p/6514300.html
Copyright © 2011-2022 走看看