转载于
作者: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
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
#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
注意,release debug模式都要设置
对于C/C++ -> Code Generation -> Runtime Library 的属性,debug,release模式是不同的
Debug下, Multi-threaded Debug(/MTd) ,
Release下,Multi-threaded(MT);
#ifndef _FUN_H_
#define _FUN_H_
int add(int a, int b)
{
return a + b;
}
#endif//_FOO_H_
main.cpp
#include
#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小结
gtest github下载一个release版本,然后分别debug 和 release下生成 会生成相应的lib
可以设置一个环境变量
GTEST = E:\gtest1.7.0\googletest-release-1.7.0
cmd下打印查看
echo %GTEST%
项目=》配置属性=》C/C++=》常规=》附加包含目录
$(GTEST)\include
链接器=》输入=》附加依赖项
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
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