转载于
作者:fengbingchun
地址:http://blog.csdn.net/fengbingchun/article/details/39667571
我的实践如下(win7, vs2010, gtest-1.7.0)
gtest的github地址如下:
https://github.com/google/googletest
可以下载一个release版本,比如
https://github.com/google/googletest/tree/release-1.7.0
- 然后按照上面转载的博文,编译配置即可,生成相关的lib文件( 包括Debug和release版本 )
- 按照转载的博文,直接在gtest解决方案下新建一个win32 console application,写好相应的文件
- lib库添加(注意debug 和 release模式都要处理)
gtest头文件添加
stdafx.cpp,如下
// stdafx.cpp : 只包括标准包含文件的源文件
// Testgtest.pch 将作为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"
// TODO: 在 STDAFX.H 中
// 引用任何所需的附加头文件,而不是在此文件中引用
#ifdef _DEBUG
#pragma comment(lib, "C:\\Users\\yy\\Desktop\\gtest1.7.0\\googletest-release-1.7.0\\msvc\\gtest\\Debug\\gtestd.lib")
#pragma comment(lib, "C:\\Users\\yy\\Desktop\\gtest1.7.0\\googletest-release-1.7.0\\msvc\\gtest\\Debug\\gtest_maind.lib")
#else
#pragma comment(lib, "C:\\Users\\yy\\Desktop\\gtest1.7.0\\googletest-release-1.7.0\\msvc\\gtest\\Release\\gtest.lib")
#pragma comment(lib, "C:\\Users\\yy\\Desktop\\gtest1.7.0\\googletest-release-1.7.0\\msvc\\gtest\\Release\\gtest_main.lib")
#endif
- 测试
// Testgtest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <cstdio>
#include "fun.h"
TEST(fun, add)
{
EXPECT_EQ(1, add(2,-1)); // 正确 2 + -1 = 1
EXPECT_EQ(3, add(2,3)); // 错误 2 + 3 = 5 不是3
}
int _tmain(int argc, _TCHAR* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
//printf("%d",add(1,2));
//return 0;
}
直接运行正常(包括debug和release模式),并可以清楚的看到测试结果
现在随意在哪个目录建立一个项目都能够使用gtest
- 把gtest放到自己制定的位置,我放到了windows的e盘
- 新建一个empty win32 console application
同上,现在只需要fun.h 和一个main.cpp, 其他文件都不需要
- 环境配置(项目属性的设置)
注意,release debug模式都要设置
对于C/C++ -> Code Generation -> Runtime Library 的属性,debug,release模式是不同的
Debug下, Multi-threaded Debug(/MTd) ,
Release下,Multi-threaded(MT);
- 编写好文件,然后测试
fun.h
#ifndef _FUN_H_
#define _FUN_H_
int add(int a, int b)
{
return a + b;
}
#endif//_FOO_H_
main.cpp
#include <cstdio>
#include "fun.h"
#include "gtest/gtest.h"
#ifdef _DEBUG
#pragma comment(lib, "E:\\gtest1.7.0\\googletest-release-1.7.0\\msvc\\gtest\\Debug\\gtestd.lib")
#pragma comment(lib, "E:\\gtest1.7.0\\googletest-release-1.7.0\\msvc\\gtest\\Debug\\gtest_maind.lib")
#else
#pragma comment(lib, "E:\\gtest1.7.0\\googletest-release-1.7.0\\msvc\\gtest\\Release\\gtest.lib")
#pragma comment(lib, "E:\\gtest1.7.0\\googletest-release-1.7.0\\msvc\\gtest\\Release\\gtest_main.lib")
#endif
TEST(fun, add)
{
EXPECT_EQ(1, add(2,-1)); // 正确 2 + -1 = 1
EXPECT_EQ(3, add(2,3)); // 错误 2 + 3 = 5 不是3
}
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
//printf("%d\n", add(1,2));
//return 0;
}
windows vs 安装gtest小结
1. 编译gtest,设置环境变量,添加头文件
gtest github下载一个release版本,然后分别debug 和 release下生成 会生成相应的lib
可以设置一个环境变量
GTEST = E:\gtest1.7.0\googletest-release-1.7.0
cmd下打印查看
echo %GTEST%
项目=》配置属性=》C/C++=》常规=》附加包含目录
$(GTEST)\include
2.0 lib库依赖添加
链接器=》输入=》附加依赖项
Debug : gtestd.lib, gtest_maind.lib
$(GTEST)\msvc\gtest\Debug\gtestd.lib
$(GTEST)\msvc\gtest\Debug\gtest_maind.lib
Release : gtest.lib,gtest_main.lib
$(GTEST)\msvc\gtest\Release\gtest.lib
$(GTEST)\msvc\gtest\Release\gtest_main.lib
3.0 多线程运行设置
C/C++=》 Code Generation=》 Runtime Library ,
C/C++=》代码生成=》运行库
debug,release模式是不同的
Debug下, Multi-threaded Debug(/MTd) ,
Release下,Multi-threaded(MT);
gtest更多学习参考如下
https://github.com/doctording/gtest_cplusplus
gtest在linux的安装和初步使用参考
https://github.com/doctording/gtest_cplusplus/tree/master/linux_gtest