GoogleTest与CppUnit:事实
在接下来的几年中设置C ++单元测试框架的过程中,我们选择了GoogleTest和CppUnit。我对两者都有一定的经验,我的首选是GoogleTest。无论如何说服我的老板我需要一些事实,所以我在互联网上做了一些阅读,包括手册,维基页面和一些资源。我想出了GoogleTest优势和一个CppUnit优势(图形测试运行程序)的列表。在这里,它们按感知的有用性排序: INSTANTIATE_TEST_CASE_P用您想要的任何参数集(包括笛卡尔乘积)实例化测试用例 FRIEND_TEST,用于测试私有类成员(适用于所有旧版代码) 将断言变成断点 非致命断言 “开箱即用” googlemock集成 自动测试检测,无需枚举 可以禁用和启用测试 可以使用名称模式选择要运行的测试 值/类型参数化测试 用户定义的谓词断言 死亡测试 更加丰富的断言 类型断言 在子程序上断言 可以使用<<将其他调试信息添加到断言中 RecordProperty向XML输出发出属性的最后一个值 SCOPED_TRACE帮助理解断言失败的上下文,该断言来自子例程或循环内部。 Jenkins可以立即显示xUnit XML输出,而无需在两者之间进行XSLT转换 支持自定义类型的打印机 测试指示所消耗的时间(我怀疑这对于CppUnit也可行,但我还没有弄清楚) 测试事件侦听器API(用户定义的插件) 测试改组 没有例外,RTTI 我假设CppUnit不支持以上所有内容是否正确?是否有一个有用的功能GoogleTest无法在CppUnit的我失踪? 最后但并非最不重要的一点:GoogleTest是否缺少任何出色的CppUnit功能? 谢谢!