如何在CPPUnit中关闭单元测试

时间:2009-11-17 22:58:16

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

天儿真好,

您是否无法在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之外,我不能更具体。