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

标签 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();
};

最佳答案

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

关于c++ - cppUnit 在启动每个单元测试时是否使用 fork()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16041964/

相关文章:

c++ - 在 VC++ 2010 项目中使用 Boost 序列化库

c++ - 可以将花括号数字列表用作传递给可变参数函数(或构造函数)的参数吗?

c++ - __PRETTY_FUNCTION__、__FUNCTION__、__func__ 有什么区别?

c - 无法在eclipse juno中编译C

c - 我如何使用 16 位整数类型?

unit-testing - 如何在不使用任何数据库的情况下测试 Hibernate 条件查询?

c# - 验证正在等待任务

c++ - 如何使用设置和使用 iconv 库

javascript - 使用 Jasmine 测试 Angular.js Controller 而不模拟工厂

c++ - 3D空间中三个3D点的线性插值