C++ 测试框架告别单头文件时代
推荐指数 46.0 NO. 010 · 2026.07.11
Stars20,593
为什么值得看
Catch2 v3 正式发布,C++ 单元测试框架从单头文件重构为模块化库,同时保留自然语法和 BDD 支持。对维护大型 C++ 代码库的工程师来说,编译时间将显著改善,且基准测试功能可直接复用现有测试基础设施。
A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
媒体预览
编辑判断
C++ 测试领域长期分裂为两派:Google Test 功能全但笨重,Catch2 v2 轻便却要把整个库编译进每个翻译单元。v3 的模块化意味着你终于能在大型项目里用 Catch2 而不被编译时间拖垮,这直接威胁到 doctest 的生存空间——后者正是靠"比 Catch2 编译快"才获得用户。
如果你在用 Catch2 v2 且项目编译时间超过 5 分钟,迁移到 v3 的 ROI 很高;但如果是新项目,建议对比 GoogleTest 的 gmock 集成再做决定,Catch2 的模拟功能仍然较弱。
Star History
生态分析
Production
C++现代测试框架标杆,平衡语法表达力与工程可维护性
独特价值:原生BDD语法+零依赖+模块化演进,大型代码库编译优化显著
竞品: