Get BOOST TEST test suite name inside a test case
boost, boost-test, c++, unit-testing
Solution
A `unit_test` has not only `p_name` but also `p_parent_id`, which is the ID of the test suite. Both those properties are inherited from `test_unit`, which is the common base class for `unit_test` and `test_suite`.
To get the suite from the ID, we can look at how `current_test_case` works:
test_case const&
current_test_case()
{
return get<test_case>( s_frk_impl().m_curr_test_case );
}
The `m_curr_test_case` member is a `test_unit_id`, just like `p_parent_id`. So, to get the test suite of the current test case, you can use this:
framework::get<test_suite>(current_test_case().p_parent_id)
Finally, `test_suite` has a `p_name` property just like `unit_test`, so you should find the name there.
Problem
I'm using `BOOST TEST` and I wonder if there is a way to find out the `test suite` from inside the `test case`. I know that I can find `test case`'s name by: `boost::unit_test::framework::current_test_case().p_name` Is there a way to find out the suite name also? My suites-cases structure is: `suite ---> case 1` `______|--> case 2` `______|--> case 3` Thanks