GoogleTest 使用指南 | 简介
GoogleTest 使用指南 | 简介
GoogleTest(也称为 gtest)是 Google 开发的一个 C++ 测试框架,用于编写和运行单元测试。它是最流行的 C++ 测试框架之一。
GoogleTest 官方网站:http://code.google.com/p/googletest/
官方的使用文档:
- http://code.google.com/p/googletest/wiki/GoogleTestPrimer
- http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide
起源和发展
创建时间:2005年由 Google 内部开发
开源时间:2008年正式开源
当前版本:v1.17.0(2025 年)
维护状态:活跃开发,定期更新
GitHub 地址:https://github.com/google/googletest
许可证:BSD-3-Clause license
主要特点
- 跨平台:支持 Linux、macOS、Windows
- 丰富的断言:提供多种断言宏
- 测试发现:自动发现和运行测试
- 测试夹具:支持测试前后的设置和清理
- 参数化测试:用不同参数运行相同测试
- 死亡测试:验证程序崩溃的情况
- Mock 支持:通过 GoogleMock 支持模拟对象
为什么选择 GoogleTest?
优势:
- 📊 行业标准:被广泛采用,包括 Google、Microsoft、IBM、NASA 等
- 🔧 功能完整:提供单元测试所需的所有功能
- 📚 文档完善:详细的官方文档和大量社区资源
- 🚀 性能优秀:测试执行速度快,内存占用小
- 🔄 持续维护:Google 持续投入资源维护和更新
- 🎯 易于集成:支持多种构建系统(CMake、Bazel、Make等)
GoogleTest 的核心组件
项目结构
googletest/
├── googletest/ # 核心测试框架
│ ├── include/ # 公共头文件
│ │ └── gtest/
│ │ ├── gtest.h # 主头文件
│ │ ├── gtest-death-test.h # 死亡测试
│ │ ├── gtest-matchers.h # 匹配器
│ │ ├── gtest-param-test.h # 参数化测试
│ │ └── ...
│ └── src/ # 实现源码
│
└── googlemock/ # Mock 框架
├── include/
│ └── gmock/
└── src/
主要模块功能
| 模块 | 功能描述 | 主要用途 |
|---|---|---|
| gtest | 核心测试框架 | 基本的测试功能、断言、测试组织 |
| gmock Mock | 对象框架 | 创建和使用模拟对象进行测试 |
| gtest_main | 主函数实现 | 提供默认的 main() 函数 |
| gtest-matchers | 高级匹配器 | 更灵活的断言条件 |
| gtest-parallel | 并行执行 | 加速大量测试的执行 |
生态系统和扩展
相关工具
- GoogleMock:模拟对象框架
- gtest-parallel:并行测试运行器
- gcovr:代码覆盖率工具
- valgrind:内存检测集成
- sanitizers:地址、线程、内存消毒器集成
社区资源
官方文档:https://google.github.io/googletest/
Google Groups:googletestframework@googlegroups.com
2752

被折叠的 条评论
为什么被折叠?



