cppUnit在启动每个单元测试时是否使用fork()?

时间:2013-04-16 16:11:25

标签: c++ c unit-testing cppunit

我正在使用cppunit进行项目的单元测试。

我想知道cppunit是否在新的fork()系统调用中启动每个单元测试,因为:

  • 使用fork将允许创建一个新的地址空间来运行每个单元测试
  • 使用fork将允许单元测试继续运行,即使其中一个导致崩溃。

我定义了一个全局变量,然后我尝试在单元测试中更改全局变量并更改在父进程中没有任何影响,但不幸的是我发现全局变量已更改。

因此,默认情况下,cppunit不支持使用fork()启动单元测试。我想知道cppunit中是否有可以用fork()启动单元测试的宏?

我的测试按以下方式定义:

class MYTest : public CppUnit::TestCase {

   CPPUNIT_TEST_SUITE( MYTest );
   CPPUNIT_TEST( getRetryValueTest );
   CPPUNIT_TEST( getRetryValueTest2 );
   CPPUNIT_TEST_SUITE_END(); 

   public:
      virtual void setUp();

      void getRetryValueTest();
      void getRetryValueTest2();
};

1 个答案:

答案 0 :(得分:3)

Cppunit不使用fork来分隔测试。但是,同一套件中的测试是单独的对象,因此每个测试都有自己的一组变量,因此彼此独立,不能相互影响。