如何编译Google Test和Google Mock库并在VS控制台程序中使用(不依赖模板)
在Visual Studio中手动集成Google Test(gtest/gmock)到控制台/空项目
一、编译Google Test源码
基于你已下载的gtest源码压缩包,按以下步骤生成静态库:
- 解压源码到本地目录,比如
D:\googletest - 在源码根目录新建
build文件夹,用于存放编译输出文件 - 打开CMake GUI,完成以下操作:
- 点击
Browse Source选择源码根目录(D:\googletest) - 点击
Browse Build选择刚创建的build文件夹 - 点击
Configure,选择你的Visual Studio版本(如VS2022)和平台(x86/x64),等待配置完成后点击Generate生成VS工程
- 点击
- 打开
build文件夹里的GoogleTest.sln,分别切换到Debug和Release配置,编译整个解决方案 - 编译完成后,静态库会生成在
build\lib对应配置的子文件夹中:Debug版本带d后缀(如gtestd.lib、gmockd.lib),Release版本无后缀(如gtest.lib、gmock.lib),同时会生成gtest_main和gmock_main系列库(用于自动生成main函数)
二、创建并配置测试项目
- 打开Visual Studio,新建空项目或控制台应用项目(命名比如
MyGTestProject) - 右键项目 → 属性,按不同配置做如下设置:
- C/C++ → 常规 → 附加包含目录:添加gtest和gmock的头文件目录,比如
D:\googletest\googletest\include、D:\googletest\googlemock\include - 链接器 → 常规 → 附加库目录:Debug配置填
D:\googletest\build\lib\Debug,Release配置填D:\googletest\build\lib\Release - 链接器 → 输入 → 附加依赖项:Debug配置填
gtestd.lib;gtest_maind.lib;gmockd.lib;gmock_maind.lib,Release配置填gtest.lib;gtest_main.lib;gmock.lib;gmock_main.lib - 提示:如果不需要gmock,可只添加gtest相关库;如果自己编写main函数,可去掉
gtest_main系列库
- C/C++ → 常规 → 附加包含目录:添加gtest和gmock的头文件目录,比如
三、编写测试代码
在项目中新建.cpp文件(比如test.cpp),写入示例代码:
// 被测函数示例 int Add(int a, int b) { return a + b; } // 测试用例:验证正整数相加逻辑 TEST(AddTest, PositiveNumbers) { EXPECT_EQ(Add(2, 3), 5); // 失败时继续执行后续断言 ASSERT_EQ(Add(10, 20), 30); // 失败时终止当前测试用例 } // 测试用例:验证负整数相加逻辑 TEST(AddTest, NegativeNumbers) { EXPECT_EQ(Add(-2, -3), -5); } // 若未链接gtest_main库,需手动编写main函数 int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); // 初始化gtest return RUN_ALL_TESTS(); // 运行所有测试用例 }
四、运行测试
- 选择对应配置(Debug/Release),将当前项目设为启动项目
- 按F5编译运行,控制台会输出测试结果,包括通过用例数、失败用例数及详细失败信息
常见问题排查
- 链接错误:检查附加库目录是否匹配当前配置(Debug/Release),lib文件名是否带正确后缀
- 头文件找不到:确认附加包含目录已正确添加gtest和gmock的include文件夹
- gmock异常:确保gmock的lib已添加,且与gtest库版本一致
内容的提问来源于stack exchange,提问作者Shashank
相关产品推荐
相关产品推荐

