google/googletest

GitHub Trending (daily) 工具

摘要

GoogleTest 是 Google 的 C++ 测试框架,已发布 1.18.0 版本,该版本要求至少支持 C++17,并包含文档更新和持续改进。

GoogleTest - Google 测试和模拟框架
查看原文
查看缓存全文

缓存时间: 2026/08/27 15:14

google/googletest

来源:https://github.com/google/googletest

GoogleTest

公告

文档更新

我们的文档现已上线于GitHub Pages: https://google.github.io/googletest/。我们建议您在GitHub Pages上浏览文档,而非直接在代码仓库中查看。

1.18.0 版本发布

1.18.0 版本 (https://github.com/google/googletest/releases/tag/v1.18.0) 现已发布。 1.18.x 分支要求至少使用 C++17 (https://opensource.google/documentation/policies/cplusplus-support#c_language_standard)。

持续集成

我们使用Google的内部系统进行持续集成。

即将推出

  • 我们计划引入对 Abseil (https://github.com/abseil/abseil-cpp) 的依赖。

欢迎使用 GoogleTest,Google的C++测试框架!

本仓库是原先独立的GoogleTest和GoogleMock项目的合并。两者关系紧密,因此将它们合并维护和发布是合理的。

入门指南

请参阅 GoogleTest 用户指南 (https://google.github.io/googletest/) 获取文档。我们建议从 GoogleTest 入门 (https://google.github.io/googletest/primer.html) 开始。 更多关于构建 GoogleTest 的信息可在 googletest/README.md 中找到。

特性

  • xUnit 测试框架:
    Googletest 基于 xUnit (https://en.wikipedia.org/wiki/XUnit) 测试框架,这是一种流行的单元测试架构。
  • 测试发现:
    Googletest 自动发现并运行您的测试,无需手动注册。
  • 丰富的断言:
    Googletest 提供多种断言,如相等、不等、异常等,便于测试您的代码。
  • 用户自定义断言:
    您可以使用 Googletest 定义自己的断言,从而轻松编写针对特定代码的测试。
  • 死亡测试:
    Googletest 支持死亡测试,用于验证代码是否以特定方式退出,有助于测试错误处理代码。
  • 致命与非致命失败:
    您可以使用 Googletest 指定测试失败是作为致命错误还是非致命错误处理,即使发生失败,测试也能继续运行。
  • 值参数化测试:
    Googletest 支持值参数化测试,即用不同的输入值多次运行测试,便于测试接受不同输入的函数。
  • 类型参数化测试:
    Googletest 还支持类型参数化测试,即使用不同的数据类型运行测试,便于测试处理不同数据类型的函数。
  • 多种测试运行选项:
    Googletest 提供多种运行测试的选项,包括运行单个测试、按特定顺序运行测试以及并行运行测试。

支持的平台

GoogleTest 遵循 Google 的 基础C++支持政策 (https://opensource.google/documentation/policies/cplusplus-support)。 请参阅 此表格 (https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md) 获取当前支持的编译器、平台和构建工具版本列表。

谁在使用 GoogleTest?

除了 Google 内部的许多项目外,GoogleTest 也被以下知名项目使用:

  • Chromium 项目 (https://www.chromium.org/) (Chrome浏览器和Chrome OS背后的技术)。
  • LLVM (https://llvm.org/) 编译器。
  • Protocol Buffers (https://github.com/google/protobuf),Google的数据交换格式。
  • OpenCV (https://opencv.org/) 计算机视觉库。

相关开源项目

  • GTest Runner (https://github.com/nholthaus/gtest-runner) 是一个基于 Qt5 的自动化测试运行器,具有图形用户界面,在Windows和Linux平台上提供强大功能。
  • GoogleTest UI (https://github.com/ospector/gtest-gbar) 是一个测试运行器,可运行您的测试二进制文件,允许您通过进度条跟踪其进度,并显示测试失败列表。点击列表项可显示失败文本。GoogleTest UI 使用 C# 编写。
  • GTest TAP Listener (https://github.com/kinow/gtest-tap-listener) 是一个 GoogleTest 事件监听器,它实现了 TAP 协议 (https://en.wikipedia.org/wiki/Test_Anything_Protocol) 用于测试结果输出。如果您的测试运行器支持 TAP,可能会觉得它很有用。
  • gtest-parallel (https://github.com/google/gtest-parallel) 是一个测试运行器,可并行运行您二进制文件中的测试,从而显著提升速度。
  • GoogleTest Adapter (https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter) 是一个 VS Code 扩展,允许在树状视图中查看 GoogleTest 并运行/调试您的测试。
  • C++ TestMate (https://github.com/matepek/vscode-catch2-test-adapter) 是一个 VS Code 扩展,允许在树状视图中查看 GoogleTest 并运行/调试您的测试。
  • Cornichon (https://pypi.org/project/cornichon/) 是一个小型的 Gherkin DSL 解析器,用于为 GoogleTest 生成桩代码。

贡献更改

请阅读 CONTRIBUTING.md (https://github.com/google/googletest/blob/main/CONTRIBUTING.md) 了解如何为本项目贡献。 祝您测试愉快!

相似文章

Go 1.27 发布 - Go 编程语言

Lobsters Hottest

Go 1.27 已发布,包含重大增强,如泛型方法、性能改进以及新标准库特性,例如 encoding/json/v2 和后量子密码学支持。

Go 1.27 发行说明

Lobsters Hottest

Go 1.27 发布引入了泛型方法以及其他语言和工具链更新,同时保持与之前版本的兼容性。

Go 1.27 交互式导览

Lobsters Hottest

Go 1.27 新功能的实践性交互式导览,重点介绍泛型方法、结构体字面量字段选择器等,并提供基于官方发布说明的可运行示例。