3

我正在使用 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();
};
4

1 回答 1

3

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

于 2013-04-18T02:14:42.517 回答