首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GoogleTest诉CppUnit:事实

GoogleTest诉CppUnit:事实
EN

Stack Overflow用户
提问于 2011-10-27 20:55:58
回答 3查看 32K关注 0票数 73

在为未来几年设置C++单元测试框架的过程中,我们列出了、GoogleTest、CppUnit。我对两者都有一定的经验,我非常喜欢GoogleTest。无论如何,为了说服我的老板,我需要一些事实,所以我在互联网上读了一些书,包括手册、维基页面和一些资料来源。我列出了一个GoogleTest优势和一个CppUnit优势(图形测试运行程序)。在这里,它们是由感知的有用性排序的:

  • INSTANTIATE_TEST_CASE_P用任何参数(包括笛卡尔产品)实例化测试用例。
  • 用于测试私有类成员的FRIEND_TEST (针对所有遗留代码)
  • 将断言转化为断点
  • 非致命断言
  • “开箱即用”googlemock集成
  • 自动测试检测,不需要枚举它们
  • 可以禁用并启用测试。
  • 可以使用名称模式选择要运行的测试。
  • 值/类型-参数化测试
  • 用户定义谓词断言
  • 死亡测试
  • 更丰富的一组断言
  • 类型断言
  • 在子程序上断言
  • 可以使用<<将其他调试信息添加到断言中。
  • RecordProperty向XML输出发送属性值的最后一个值。
  • SCOPED_TRACE帮助理解断言失败的上下文来自子例程或循环。
  • xUnit XML输出,可以立即由Jenkins显示,而不需要在
  • 支持自定义类型打印机
  • 测试指示所消耗的时间(我怀疑这在CppUnit中也是可能的,但我还没有弄清楚)
  • 测试事件侦听器API (用户定义插件)
  • 试验洗牌
  • 无例外和RTTI

我是否正确地假定上述所有内容都不受CppUnit支持?在我所缺少的GoogleTest中是否有一个有用的没有可用的

最后但并非最不重要的一点是:有什么好的CppUnit特性是GoogleTest 缺乏的?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2011-11-03 08:02:39

如果您使用较早版本的gcc编译器,或者您的测试代码运行在vxWorks (或VxSim)上,那么您使用cppUnit的可能性可能比Googletest更大。

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

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

不确定在cppUnit中是否支持这一点,但这可能非常有用,特别是在遗留系统中。

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

票数 7
EN

Stack Overflow用户

发布于 2012-10-25 05:00:44

如果您没有看过xUnit++,我之所以这么做,是因为我对可用的内容(包括gtest)不满意。大多数列表都是受支持的,如果不是,如果它是一个“必须有”特性,我可能会愿意添加它。

票数 6
EN

Stack Overflow用户

发布于 2011-11-03 20:38:23

这就是我所看到的好处。有几个GUI测试运行程序:

  1. https://github.com/ospector/gtest-gbar
  2. https://github.com/SandyChapman/gtest-runner-qt

我已经使用了第一个,虽然它还在开发中,但它运行得很好,需要做一些工作。不知道是否还有其他选择。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7922289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档