gpt4 book ai didi

c++ - GoogleTest 与 CppUnit : The facts

转载 作者:IT老高 更新时间:2023-10-28 13:20:40 24 4
gpt4 key购买 nike

在为 future 几年设置 C++ 单元测试框架的过程中,我们入围了 GoogleTestCppUnit。我对这两者都有一些经验,我最喜欢的是 GoogleTest。无论如何,为了说服我的老板我需要一些事实,所以我在 Internet 上进行了一些阅读,包括手册、wiki 页面和一些资源。我提出了一份 GoogleTest 优势列表和一个 CppUnit 优势(图形测试运行器)。在这里,它们按感知有用性排序:

  • INSTANTIATE_TEST_CASE_P 使用您想要的任何参数集(包括笛卡尔积)实例化测试用例
  • FRIEND_TEST 用于测试私有(private)类成员(适用于所有遗留代码)
  • 将断言变成断点
  • 非致命断言
  • “开箱即用”googlemock 集成
  • 自动检测检测,无需枚举
  • 可以禁用和启用测试
  • 可以使用名称模式选择要运行的测试
  • 值/类型参数化测试
  • 用户定义的谓词断言
  • 死亡测试
  • 更丰富的断言集
  • 类型断言
  • 断言子程序
  • 可以使用 <<
  • 将额外的调试信息添加到断言中
  • RecordProperty 将属性的最后一个值发送到 XML 输出
  • SCOPED_TRACE 有助于了解来自子例程或循环内部的断言失败的上下文。
  • xUnit XML 输出,Jenkins 可以立即显示,而无需在两者之间进行 XSLT 转换
  • 支持自定义类型的打印机
  • 测试指示所消耗的时间(我怀疑这也可以使用 CppUnit,但我还没有弄清楚)
  • 测试事件监听 API(用户自定义插件)
  • 测试改组
  • 没有异常(exception)和 RTTI

我是否正确假设 CppUnit 不支持以上所有内容?我缺少的 CppUnit 中是否有一个有用的 GoogleTest 功能不可用

最后但并非最不重要的一点是:GoogleTest 缺少 是否有任何不错的 CppUnit 功能?

谢谢!

最佳答案

如果您使用旧版本的 gcc 编译器,或者如果您的测试代码在 vxWorks(或 VxSim)上运行,那么使用 cppUnit 可能比使用 Googletest 框架更有机会。

另一方面,googletest 框架的另一个特点是提供 3 种不同级别的设置/拆卸:

  • 每个程序
  • 每个测试用例(或测试组)
  • 每个测试实例

不确定 cppUnit 是否支持此功能,但这可能会非常方便,尤其是在旧系统中。

此外,还有一个用于 Eclipse CDT 的 googletest 插件。

关于c++ - GoogleTest 与 CppUnit : The facts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com