在设置我们的C++单元测试框架的过程中,我们将 GoogleTest 和 CppUnit 入围。我对两者都有一定的经验,我的首选是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/