googletest - GoogleTest - Google 测试和模拟框架

Created at: 2015-07-28 23:07:53
Language: C++
License: BSD-3-Clause

谷歌测试

公告

活在头上

GoogleTest现在遵循Abseil Live at Head的理念。我们建议尽可能频繁地更新到主分支中的最新提交。我们偶尔会发布语义版本,并标记(例如)。

v${major}.${minor}.${patch}
v1.14.0

文档更新

我们的文档现在在 GitHub Pages at https://google.github.io/googletest/ 上线。我们建议在 GitHub 页面上浏览文档,而不是直接在存储库中浏览。

版本 1.14.0

版本 1.14.0 现已发布。

1.14.x 分支至少需要 C++14。

持续集成

我们使用谷歌的内部系统进行持续集成。
添加 GitHub 操作是为了方便开源贡献者。它们完全由开源社区维护,不由GoogleTest团队使用。

即将推出

  • 我们计划依赖Abseil
  • 计划进行更多文档改进。

欢迎来到谷歌测试,谷歌的C++测试框架!

这个存储库是以前独立的GoogleTest和GoogleMock项目的合并。这些是如此密切相关,因此将它们一起维护和释放是有意义的。

开始

有关文档,请参阅 GoogleTest 用户指南。我们建议从GoogleTest Primer开始。

有关构建GoogleTest的更多信息,请访问googletest/README.md

特征

  • xUnit 测试框架:
    Googletest基于xUnit测试框架,这是一种流行的单元测试架构。
  • 测试发现:
    Googletest 会自动发现并运行你的测试,无需手动注册测试
  • 丰富的断言集:
    Googletest 提供了各种断言,例如相等、不等式、异常等,便于测试代码
  • 用户定义的断言:
    你可以使用 Googletest 定义自己的断言,从而轻松编写特定于你的代码的测试
  • 死亡测试:
    Googletest 支持死亡测试,它可以验证你的代码是否以某种方式退出,使其可用于测试错误处理代码
  • 致命和非致命故障:
    你可以使用 Googletest 指定是将测试失败视为致命故障还是非严重失败,这样即使发生故障,测试也能继续运行
  • 值参数化测试:
    Googletest 支持值参数化测试,这些测试使用不同的输入值多次运行,因此可用于测试采用不同输入的函数
  • 类型参数化测试:
    Googletest 还支持类型参数化测试,这些测试使用不同的数据类型运行,因此可用于测试使用不同数据类型的函数
  • 用于运行测试的各种选项:Googletest 提供了许多用于运行测试的选项,
    包括运行单个测试、按特定顺序运行测试和并行运行测试

支持的平台

GoogleTest 遵循 Google 的基础C++支持政策。有关当前支持的编译器、平台和生成工具版本的列表,请参阅此表

谁在使用谷歌测试?

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

相关开源项目

GTest Runner是基于Qt5的自动测试运行器和图形用户界面,具有适用于Windows和Linux平台的强大功能。

GoogleTest UI 是一个测试运行程序,用于运行测试二进制文件,允许你通过进度条跟踪其进度,并显示测试失败列表。单击一个将显示失败文本。GoogleTest UI是用C#编写的。

GTest TAP侦听器是GoogleTest的事件侦听器,它实现了TAP协议以输出测试结果。如果你的测试运行程序了解 TAP,你可能会发现它很有用。

gtest-parallel 是一个测试运行程序,它从二进制文件并行运行测试,以提供显著的加速。

GoogleTest Adapter是一个VS Code扩展,允许在树视图中查看GoogleTest并运行/调试测试。

C++ TestMate是一个VS Code扩展,允许在树视图中查看GoogleTest并运行/调试测试。

Cornichon 是一个小型的小黄瓜 DSL 解析器,可为 GoogleTest 生成存根代码。

贡献更改

请阅读 CONTRIBUTING.md,了解有关如何为该项目做出贡献的详细信息。

测试愉快!