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

时间:2013-08-28 14:42:20

标签: c++ unit-testing boost 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

由于

1 个答案:

答案 0 :(得分:5)

unit_test不仅有p_name,还有p_parent_id,这是测试套件的ID。这两个属性都继承自test_unit,这是unit_testtest_suite的公共基类。

要从ID获取套件,我们可以查看current_test_case的工作原理:

test_case const&
current_test_case()
{
    return get<test_case>( s_frk_impl().m_curr_test_case );
}

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

framework::get<test_suite>(current_test_case().p_parent_id)

最后,test_suite有一个p_name属性,就像unit_test一样,所以你应该在那里找到这个名字。