在测试用例中获取BOOST TEST测试套件名称

hud*_*dac 8 c++ boost unit-testing boost-test

我正在使用BOOST TEST,我想知道是否有办法test suite从里面找出test case.我知道我可以test case通过以下方式找到姓名:

boost::unit_test::framework::current_test_case().p_name

有没有办法找出套件名称呢?

我的套房 - 案例结构是:

suite ---> case 1

______|--> case 2

______|--> case 3

谢谢

Rob*_*edy 5

A unit_test不仅有,p_name而且还有p_parent_id测试套件的ID.这两个属性继承test_unit,这是共同的基类为unit_test和test_suite.

要从ID中获取套件,我们可以看看它是如何current_test_case工作的:

test_case const&
current_test_case()
{
    return get<test_case>( s_frk_impl().m_curr_test_case );
}
Run Code Online (Sandbox Code Playgroud)

该m_curr_test_case成员是一个test_unit_id,就像p_parent_id.因此,要获得当前测试用例的测试套件,您可以使用:

framework::get<test_suite>(current_test_case().p_parent_id)
Run Code Online (Sandbox Code Playgroud)

最后,test_suite有一个p_name属性unit_test,所以你应该在那里找到名称.