我正在使用BOOST TEST
,我想知道是否有办法从test suite
内找出test case
。我知道我可以通过以下方式找到test case
的名字:
boost::unit_test::framework::current_test_case().p_name
有没有办法找出套件名称?
我的套房 - 案例结构是:
suite ---> case 1
______|--> case 2
______|--> case 3
由于
答案 0 :(得分:5)
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 );
}
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
一样,所以你应该在那里找到这个名字。