我是靠谱客的博主 小巧薯片,最近开发中收集的这篇文章主要介绍vs2013下gtest的配置与入门实例测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

配置步骤

  1. 先下载gtest,并解压。
  2. 用vs2013打开gtest—-msvc—-gtest工程(双击gtest),弹出如下“单向升级”窗口,单击“确定”,会弹出“迁移报告”,关闭“迁移报告”即可。
  3. 用vs2013打开工程gtest;对gtest右键——>生成,即可生成gtestd.lib(这个是对应Debug的),还有一个gtest.lib(这个对应Release),可根据需要生成相应文件。编译之前注意检查的配置:对gtest右键—>属性—>配置属性—>C/C++—>代码生成,查看右面的“运行库”,选择多线程调试(MTd);此配置一下面的测试用力配置一样,保持一致。
  4. 编写实例配置:
    建立工程:
    在VS2013,创建一个项目,为Visual C++ -> win32 控制台应用程序(win32 console application),命名为test,进入向导,直接完成即可以。
    配置:
    对工程名右键->属性->配置属性->C/C++->常规->附加包括目录:添加gtest库路径下面的/gtest/include;
    对工程名右键->属性->配置属性->C/C++->代码生成->运行时库:与前面gtest配置一样,选择MTd;
    对工程名右键->属性->配置属性->链接器->输入->附加依赖项:输入gtest路径下的/msvc/gtest/Debug/gtestd.lib。
    至此,配置就完成了,可以开始写测试用例了。
  5. 实例
    头文件fun.h
# pragma once
int fun(int a, int b);

源文件fun.cpp

#include "fun.h"

#include <iostream>

using namespace std;
int fun(int a, int b)
{
return (a - b);
}

源文件test.cpp

//#include "stdafx.h"
VS2013 中不需要此句,详见第6条
#include "gtest/gtest.h"
#include
"fun.h"
#include <tchar.h>
//若不包含,main中参数会报错
TEST(fun, case1)
{
EXPECT_LT(-2, fun(1, 2));
EXPECT_EQ(-1, fun(1, 2));
ASSERT_LT(-2, fun(1, 2));
ASSERT_EQ(-1, fun(1, 2));
}
int _tmain(int argc, _TCHAR* argv[])
{
//多个测试用例时使用,如果不写,运行RUN_ALL_TESTS()时会全部测试,加上则只返回对应的测试结果

//testing::GTEST_FLAG(filter) = "test_case_name.test_name";
//测试初始化
testing::InitGoogleTest(&argc, argv);
//return RUN_ALL_TESTS();
RUN_ALL_TESTS();
//暂停,方便观看结果,结果窗口将会一闪而过

system("PAUSE");
return 0;
}

结果:
这里写图片描述
6.关于stdafx.h
vs2013中已经包含了stdafx.h,如果在源文件中重复添加将会报错。
这里写图片描述

7 运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
参考http://www.cnblogs.com/waytofall/archive/2012/05/11/2496360.html
这里写图片描述
一般情况下不会出错,不需要自己去配置或者寻找;我在配置的时候一直报错,找不到libcpmtd.lib文件,为此查找了很多种方法均不好使,最后重装了vs2013好使了,可能是安装的问题;看到网上说还有一种原因是gtest编译库的方式与实例编译的方式不同,就是前面第三步中配置MTd的地方,最好保持一致。

最后

以上就是小巧薯片为你收集整理的vs2013下gtest的配置与入门实例测试的全部内容,希望文章能够帮你解决vs2013下gtest的配置与入门实例测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部