CPPUnit 中使用的测试套件 属性 有哪些示例? (CPPUNIT_TEST_SUITE_PROPERTY)

What are examples of test suite property uses in CPPUnit? (CPPUNIT_TEST_SUITE_PROPERTY)

我加入了一个使用 CPPUnit 进行单元测试的项目,并将添加一些可能共享设置和拆卸代码的测试。在对此进行更多研究时,我遇到了

CPPUNIT_TEST_SUITE_PROPERTY

(来自 https://people.freedesktop.org/~mmohrhard/cppunit/group___writing_test_fixture.html

它的描述是

Adds a property to the test suite builder context.

http://cppunit.sourceforge.net/doc/cvs/group___writing_test_fixture.html 表示如下:

Adds a property to the test suite builder context

我不确定它的预期用途或目的是什么,尽管它 看起来 好像它可能对共享有用公共信息等。我没有看到它的使用示例。

这有什么价值,有什么例子可以给我参考吗?

根据 this piece of code,看起来您应该能够在创建测试套件时的某个时候检索 属性 以将其作为参数传递给特定测试。

也许目标是让你做:

#define CPPUNIT_TEST_WITH_PARAM(testMethod,param) \
    CPPUNIT_TEST_ADD( new CppUnit::ParameterizedTestCase<ThisTestFixtureType>( \
                                        context.getTestNameFor( #testMethod ), \
                                        #testMethod, \
                                        &TestFixtureType::testMethod, \
                                        context.makeFixture(), \
                                        context.getStringProperty( param ) ) )

CPPUNIT_TEST_SUITE( MyTestSuite);
CPPUNIT_TEST_SUITE_PROPERTY( "param1", "foo" )
CPPUNIT_TEST_SUITE_PROPERTY( "param2", "bar" )
CPPUNIT_CPPUNIT_TEST_WITH_PARAM( func, "param1" )
CPPUNIT_CPPUNIT_TEST_WITH_PARAM( func, "param2" )
CPPUNIT_TEST_SUITE_END();

void func( const std::string& param ); 

这将结束对 func("foo")func("bar") 的调用。这很好,因为它可以添加字符串参数化测试。

然而,这只是一个猜测尝试,因为 ParameterizedTestCase 不是 1.12.1 旧版本的一部分,也不是更多 [=18] 的一部分=](CPPUNIT_TEST_ADD 宏也是如此),我相信这显然是发布计划中的内容,但已中止,宏 CPPUNIT_TEST_SUITE_PROPERTY 在这里仍然无用。 getStringProperty也还在,我发现没办法正常使用。

总而言之,这看起来像是一个破烂的东西,无论如何显然不是为了共享 setup/teardown 代码,而是为了进行参数化测试(实际上可以通过模板完成,参见 ).