【问题标题】:how to turn off a unit test in CPPUnit如何在 CPPUnit 中关闭单元测试
【发布时间】:2009-11-17 22:58:16
【问题描述】:

我(最终)使用 CPPUnit 对我的应用程序进行了单元测试,并且我让 CruiseControl.NET 运行测试并显示测试输出。然而,我有几个测试总是失败,所以 CruiseControl 总是将构建标记为失败。有什么办法可以“关闭”或“跳过”或“忽略”这些总是失败的测试?我宁愿不只是在源代码中将它们注释掉,因为它们指出了应用程序中的有效错误,我们目前由于业务原因无法修复,但可能能够在未来的版本中解决。如果可能的话,我希望仍然能够运行测试并查看它们的输出,但只是让 CPPUnit 不将它们视为失败(或者甚至在 CruiseControl 级别忽略它们)。

【问题讨论】:

    标签: c++ unit-testing cruisecontrol.net cppunit


    【解决方案1】:

    作为 cppunit 食谱中的 demonstrated,您可以将测试组织到测试套件中。我会将“已知失败”的测试放在一个单独的测试套件中。然后,您可以选择何时运行此测试套件以及何时忽略它。

    【讨论】:

      【解决方案2】:

      生日,

      您不能注释掉 testSuite_* 代码中的各个测试吗?

      编辑:抱歉,我没有完全解析您的问题。但是 testSuite_ 是一种对以某种方式相关的单个测试进行分组的方法,例如对于我们正在使用的 LD_PRELOAD 重映射库,我们有几个测试套件,例如

      testSuite_access.c
      testSuite_acl.c
      testSuite_chdir.c
      testSuite_chmod.c
      ...    
      etc.
      

      将执行特定操作系统命令的多个测试组合在一起。

      但是考虑一下,实际上阅读您所说的(-: ,您似乎希望保持 CPPUnit 的功能正常工作而不是使用它,即仍然将测试标记为失败.

      所以我建议考虑使用 CruiseControl 的行为来忽略那些已知的故障。甚至可能暂时将它们标记为“可接受”,例如构建的琥珀色状态,而不是绿色或红色状态,对于您描述的情况,这两种状态都是错误的。

      CruiseControl 非常可配置,并且在他们的 wiki 上有一个活跃的社区,可通过他们的home page 访问。

      HTH

      抱歉,除了建议您修改 CruiseControl 行为而不是使用 CPPUnit 之外,我无法更具体。

      【讨论】:

      • 来自问题:“如果可能,我希望仍然能够运行测试并查看它们的输出,但只是让 CPPUnit 不将它们视为失败”
      • 恐怕我不明白您所说的“testSuite_* 代码”是什么意思。 AFAIK,在我的测试应用程序中没有看起来像这样的代码。我正在使用便利宏,所以你的意思可能被那个混淆了......
      • @rmeador,添加了更多信息和建议
      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多