GoogleTest 现在遵循 Abseil Live at Head 理念。我们建议尽可能频繁地更新到main
分支中的最新提交。我们偶尔会发布语义版本,标记为v${major}.${minor}.${patch}
(例如v1.15.2
)。
我们的文档现已发布在 GitHub Pages 上:https://google.github.io/googletest/。我们建议浏览 GitHub Pages 上的文档,而不是直接在存储库中浏览。
版本 1.15.2 现已推出。
1.15.x 分支至少需要 C++14。
我们使用 Google 的内部系统进行持续集成。
我们计划依赖绳索下降。
该存储库是以前独立的 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 还被以下著名项目使用:
Chromium 项目(Chrome 浏览器和 Chrome 操作系统背后)。
LLVM 编译器。
Protocol Buffers,Google 的数据交换格式。
OpenCV 计算机视觉库。
GTest Runner 是一个基于 Qt5 的自动化测试运行器和图形用户界面,具有适用于 Windows 和 Linux 平台的强大功能。
GoogleTest UI 是一个测试运行程序,它运行测试二进制文件,允许您通过进度栏跟踪其进度,并显示测试失败列表。单击其中一个会显示失败文本。 GoogleTest UI 是用 C# 编写的。
GTest TAP Listener是GoogleTest的事件监听器,它实现了测试结果输出的TAP协议。如果您的测试运行者了解 TAP,您可能会发现它很有用。
gtest-parallel 是一个测试运行程序,可以并行运行二进制文件中的测试,以显着提高速度。
GoogleTest 适配器是一个 VS Code 扩展,允许在树视图中查看 GoogleTest 并运行/调试您的测试。
C++ TestMate 是一个 VS Code 扩展,允许在树视图中查看 GoogleTest 并运行/调试您的测试。
Cornichon 是一个小型 Gherkin DSL 解析器,可为 GoogleTest 生成存根代码。
请阅读CONTRIBUTING.md
了解如何为该项目做出贡献的详细信息。
测试愉快!