如何为所有cppunit测试创建通用设置?

时间:2013-10-30 10:57:19

标签: cppunit

我们有许多CPPUNIT测试套件,每套测试都有自己的setUp()/ tearDown(),我要做的是在所有的测试套件中都有一个共同的setUp()/ tearDown()套房。据我所知,对于给定的套件,我有一个setUp()和Teardown(),它在套件中的每个测试之前运行

e.g。套房A我们有:

suiteA - setUp();
suiteA - test1();
suiteA - tearDown();
suiteA - setUp();
suiteA - test2();
suiteA - tearDown();
....

对于套件B,我们会:

suiteB - setUp();
suiteB - test1();
suiteB - tearDown();
suiteB - setUp();
suiteB - test2();
suiteB - tearDown();
....

我想要的是类似

的东西
commonSetUp();
suiteA - setUp();
suiteA - test1();
suiteA - tearDown();
commonSetUp();
suiteA - setUp();
suiteA - test2();
suiteA - tearDown();
commonSetUp();
suiteB - setUp();
suiteB - test1();
suiteB - tearDown();
commonSetUp();
suiteB - setUp();
suiteB - test2();
suiteB - tearDown();

1 个答案:

答案 0 :(得分:3)

我们通过不直接使用cppunit :: TestFixture来解决问题。我们有几个继承自cppunit :: TestFixture的类,它们实现了setUp和tearDown(并且还提供了一些常用的测试代码)。现在,每个测试类都继承自我们自己的一个类,用于执行setUp和tearDown。

如果有必要,可以稍后在类中覆盖setUp / tearDown,如果需要,可以调用基类setUp / tearDown。