- 本文以VS2019为例,自己的工程使用Debug x64,多线程调试DLL(/MDd),用户可以根据自己需求更改配置,只要所有配置前后统一即可。
-
第一步:clone Google Test源码
- 打开https://github.com/google/googletest,通过git克隆或者下载ZIP的方式得到源码。
- 打开https://github.com/google/googletest,通过git克隆或者下载ZIP的方式得到源码。
-
第二步:生成Google Test的lib
-
在VS2019中,导入.\googletest\msvc\2010\gtest-md.sln
-
修改vs中的解决方案配置,将其修改为和你要测试的工程配置相同,这里以“Debug x64”为例
-
vs中,Debug和Release生成的lib库是不同的,分别为gtestd.lib和gtest.lib,两个是不同的,不可混用。
-
在解决方案资源管理器中修改工程的属性
-
确保配置为Debug x64。
-
修改配置属性-C/C++-代码生成-运行库,将其修改为和你要测试的工程配置相同,这里以“多线程调试DLL(/MDd)”为例
-
-
编译,生成
-
debug、release两个模式需要分别设置、编译生成。
-
编译后,在msvc/gtest/下有debug、release两个文件夹。
-
共生成4个文件
-
googletest\msvc\2010\gtest\x64-Debug - Debug方案下的二进制文件:gtestd.lib、gtest_maind.lib(注意主文件名的d后缀)
-
googletest\msvc\2010\gtest\x64-Release - Release方案下的二进制文件:gtest.lib、gtest_main.lib
-
第三步:单元测试
-
在要测试的工程中,添加-新建项-Google Test
-
为要测试的工程添加lib。
-
-
首先确保解决方案配置和工程配置中都是Debug x64。
-
配置属性-C/C++-代码生成-运行库是多线程调试DLL(/MDd)。
-
配置属性-C/C++-常规”,在“附加包含目录”中添加“xxx\googletest\include;”(xxx为源码的路径)。
-
-
-
配置属性-链接器-输入-附加依赖项,添加从googletest生成的两个lib:gtest_maind.lib和gtestd.lib。
-
-
-
第四步:可以写测试了,写在你新建的Google Test.cpp里,作为启动项运行即可
#include "gtest/gtest.h"
#include "TestFunction.h"
//MyAdd(int a, int b) { return a+b; }
TEST(MyAdd, 4plus4)
{
EXPECT_EQ(MyAdd(4,4), 8);
EXPECT_TRUE(true);
}//通过
TEST(MyAdd, 5plus5)
{
EXPECT_EQ(MyAdd(5, 5), 8);
EXPECT_TRUE(true);
}//不通过
int main(int argc, char* argv[])
{
testing::InitGoogleTest(&argc, argv);//将命令行参数传递给gtest
return RUN_ALL_TESTS(); //RUN_ALL_TESTS()运行所有测试案例
system("pause");
}
- 运行结果