我正在使用 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/