3

プロジェクトの単体テストに cppunit を使用しています。

そして、cppunit が新しい fork() システム コールで各単体テストを起動するかどうか疑問に思っています。理由は次のとおりです。

  • fork を使用すると、各単体テストを実行するための新しいアドレス空間を作成できます
  • fork を使用すると、単体テストの 1 つがクラッシュを引き起こしたとしても、単体テストを実行し続けることができます。

グローバル変数を定義した後、単体テストでグローバル変数を変更しようとしましたが、親プロセスに影響を与えない変更を行ったところ、残念ながらグローバル変数が変更されていることがわかりました。

したがって、デフォルトでは、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