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

Get BOOST TEST test suite name inside a test case

本文关键字:套件 测试 BOOST 测试用例 获取      更新时间:2023-10-16

我正在使用BOOST TEST,我想知道是否有办法从test case内部找出test suite。我知道我可以通过以下方式找到test case的名字:

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

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

我的套房结构是:

suite ---> case 1

______|--> case 2

______|--> case 3

谢谢

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一样,所以你应该在那里找到这个名字。