vs2013下gtest的配置与入门实例测试
2017-10-22 21:13
906 查看
原文链接:http://blog.csdn.net/ruyueyini/article/details/47448211
配置步骤
先下载gtest,并解压。下载地址:https://github.com/google/googletest
用vs2013打开gtest—-msvc—-gtest工程(双击gtest),弹出如下“单向升级”窗口,单击“确定”,会弹出“迁移报告”,关闭“迁移报告”即可。
用vs2013打开工程gtest;对gtest右键——>生成,即可生成gtestd.lib(这个是对应Debug的),还有一个gtest.lib(这个对应Release),可根据需要生成相应文件。编译之前注意检查的配置:对gtest右键—>属性—>配置属性—>C/C++—>代码生成,查看右面的“运行库”,选择多线程调试(MTd);此配置一下面的测试用力配置一样,保持一致。
编写实例配置:
建立工程:
在VS2013,创建一个项目,为Visual C++ -> win32 控制台应用程序(win32 console application),命名为test,进入向导,直接完成即可以。
配置:
对工程名右键->属性->配置属性->C/C++->常规->附加包括目录:添加gtest库路径下面的/gtest/include;
对工程名右键->属性->配置属性->C/C++->代码生成->运行时库:与前面gtest配置一样,选择MTd;
对工程名右键->属性->配置属性->链接器->输入->附加依赖项:输入gtest路径下的/msvc/gtest/Debug/gtestd.lib。
至此,配置就完成了,可以开始写测试用例了。
实例
头文件fun.h
2
源文件fun.cpp
2
3
4
5
6
7
8
源文件test.cpp
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
结果:
6.关于stdafx.h
vs2013中已经包含了stdafx.h,如果在源文件中重复添加将会报错。
7 运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
参考http://www.cnblogs.com/waytofall/archive/2012/05/11/2496360.html
一般情况下不会出错,不需要自己去配置或者寻找;我在配置的时候一直报错,找不到libcpmtd.lib文件,为此查找了很多种方法均不好使,最后重装了vs2013好使了,可能是安装的问题;看到网上说还有一种原因是gtest编译库的方式与实例编译的方式不同,就是前面第三步中配置MTd的地方,最好保持一致。
配置步骤
先下载gtest,并解压。下载地址:https://github.com/google/googletest
用vs2013打开gtest—-msvc—-gtest工程(双击gtest),弹出如下“单向升级”窗口,单击“确定”,会弹出“迁移报告”,关闭“迁移报告”即可。
用vs2013打开工程gtest;对gtest右键——>生成,即可生成gtestd.lib(这个是对应Debug的),还有一个gtest.lib(这个对应Release),可根据需要生成相应文件。编译之前注意检查的配置:对gtest右键—>属性—>配置属性—>C/C++—>代码生成,查看右面的“运行库”,选择多线程调试(MTd);此配置一下面的测试用力配置一样,保持一致。
编写实例配置:
建立工程:
在VS2013,创建一个项目,为Visual C++ -> win32 控制台应用程序(win32 console application),命名为test,进入向导,直接完成即可以。
配置:
对工程名右键->属性->配置属性->C/C++->常规->附加包括目录:添加gtest库路径下面的/gtest/include;
对工程名右键->属性->配置属性->C/C++->代码生成->运行时库:与前面gtest配置一样,选择MTd;
对工程名右键->属性->配置属性->链接器->输入->附加依赖项:输入gtest路径下的/msvc/gtest/Debug/gtestd.lib。
至此,配置就完成了,可以开始写测试用例了。
实例
头文件fun.h
# pragma once int fun(int a, int b);1
2
源文件fun.cpp
#include "fun.h" #include <iostream> using namespace std; int fun(int a, int b) { return (a - b); }1
2
3
4
5
6
7
8
源文件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; }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
结果:
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的配置与入门实例测试
- 【OpenCV图像处理入门学习教程一】OpenCV2 + 3的安装教程与VS2013的开发环境配置 + JPEG压缩源码分析与取反运算修改
- 2013 duilib入门简明教程 -- VS环境配置(2)
- OpenCV3.1.0+VS2013开发环境配置之测试程序错误解决
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- 关于win10 64位系统下vs2013与python2.7环境下caffe的配置工作入门工作总结
- Alberl 2013 duilib入门简明教程 -- VS环境配置(2)
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- 【opencv3.1.0】opencv3.1.0配置contrib3.1.0+vs++2013(64位)+SIFT程序测试
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- VS2013 用ATL向导制作OCX控件入门 (开发及测试)
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- VS2013/MFC编程入门之二十二(常用控件:按钮控件的编程实例)
- Windows下opencv在vs2013的配置及小测试
- vs2013环境下配置gtest
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- win10+qt5.3+opencv2.4.9+vs2013环境配置及运行实例
- c++入门之一:EGE图形库介绍与配置(VS2013、DEVCPP)