Repolode
catchorg

catchorg/Catch2

一个面向 C++ 的单元测试框架,支持简洁断言、BDD 风格宏和基础微基准测试。

Star
21,534
Fork
3,437
未关闭 Issue
454
最近提交
17天前

这是什么?

Catch2 是一个面向 C++ 的单元测试框架。测试名称可以使用任意字符串,断言直接写成普通的 C++ 布尔表达式,并通过 section 机制在测试内部局部共享初始化和清理代码。

除单元测试外,Catch2 还提供简单的 BDD 宏和基础的微基准测试功能。基准测试默认不会运行,需要通过 [!benchmark] 标签显式选择执行。

devel 分支上的 v3 版本已从单头文件库改为由多个头文件和独立编译实现组成的常规库。v2.x 分支继续支持 C++11,Catch1.x 分支则支持 C++03。

核心功能

  • 01测试名称可以是任意字符串,不必是合法标识符。
  • 02断言直接使用普通的 C++ 布尔表达式书写。
  • 03通过 section 在单个测试用例内局部共享初始化与清理代码。
  • 04提供 BDD 风格的宏,便于编写行为驱动测试。
  • 05内置基础微基准测试,通过 [!benchmark] 标签运行。
  • 06不依赖外部库。

适用场景

  • 为 C++ 项目快速编写单元测试,配置成本低。
  • 在 C++ 项目中实践测试驱动开发(TDD)。
  • 在已有测试旁边添加简单的微基准测试。
  • 使用 BDD 宏组织行为规格式的测试用例。

使用前须知

  • README 称 v3 的文档仍在更新中,部分文档可能落后于代码。

收录于专题

标签

常见问题

Catch2 是什么?
一个面向 C++ 的单元测试框架,支持简洁断言、BDD 风格宏和基础微基准测试。 Catch2 是一个面向 C++ 的单元测试框架。测试名称可以使用任意字符串,断言直接写成普通的 C++ 布尔表达式,并通过 section 机制在测试内部局部共享初始化和清理代码。
Catch2 可以免费使用吗?用的什么许可证?
Catch2 以 BSL-1.0 许可证开源。用于商业产品前,请先确认许可证条款。
Catch2 还在维护吗?
活跃维护中。Catch2 最近一次提交是在 2026年10月8日。
Catch2 适合用来做什么?
为 C++ 项目快速编写单元测试,配置成本低。 在 C++ 项目中实践测试驱动开发(TDD)。 在已有测试旁边添加简单的微基准测试。 使用 BDD 宏组织行为规格式的测试用例。
在哪里获取 Catch2?
源代码和安装说明在 GitHub 上:https://github.com/catchorg/Catch2

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目