[原][译]咱们为何须要另外一个c++测试框架?Catch||Why do we need yet another C++ test framework?

翻译问题来源:https://github.com/catchorg/Catch2/blob/master/docs/why-catch.mdgit

其余辅助博文:从Google Test 转到 Catchgithub

Why do we need yet another C++ test framework?

好问题。 对于C ++,有不少已创建的框架,包括(但不限于),Google Test,Boost.Test,CppUnit,Cute,不少甚至更多。

那么Catch给派对带来了什么呢?服务器

主要特色

快速且很是容易上手。 只需下载catch.hpp,#include它就能够了。
没有外部依赖。 只要您能够编译C ++ 11而且可使用C ++标准库。
将测试用例写为自注册函数(或方法,若是您愿意)。
将测试用例分红几个部分,每一个部分都是隔离运行的(不须要固定装置)。
使用BDD样式的Given-When-Then部分以及传统的单元测试用例。
只有一个核心断言宏用于比较。 标准C / C ++运算符用于比较 - 可是完整表达式被分解并记录lhs和rhs值。
测试使用自由格式字符串命名 - 再也不使用合法标识符中的链接名称。app

其余核心功能

能够标记测试以便轻松运行特定的测试组。
失败能够(可选)进入Windows和Mac上的调试器。
输出是经过模块化报告对象。 包括基本的文本和XML记者。 能够轻松添加自定义记者。
支持JUnit xml输出与第三方工具(如CI服务器)集成。
提供了默认的main()函数,但您能够提供本身的完整控件(例如集成到您本身的测试运行器GUI中)。
提供了命令行解析器,若是您选择提供本身的main()函数,仍然可使用它。
Catch能够测试本身。
备用断言宏报告失败但不停止测试用例
浮点容差比较使用富有表现力的约()语法构建。
内部和友好的宏是隔离的,所以能够管理名称冲突
匹配器框架

这是使用catch的开源库列表

这是catch的教程

相关文章
相关标签/搜索