2013-08-28 10 views
8

Używam BOOST TEST i zastanawiam się, czy istnieje sposób, aby dowiedzieć się test suite od wewnątrz test case. Wiem, że mogę znaleźć test case Nazwy przez:Uzyskaj nazwę zestawu testowego BOOST TEST w przypadku testowym

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

Czy istnieje sposób, aby dowiedzieć się nazwy suite również?

My Suites-przypadki struktura jest następująca:

suite ---> case 1

______|--> case 2

______|--> case 3

Dzięki

Odpowiedz

5

unit_test nie tylko p_name ale również p_parent_id, który jest identyfikatorem pakiet testowy. Obie te właściwości są dziedziczone po test_unit, która jest wspólną podstawową klasą dla unit_test i test_suite.

Aby otrzymać pakiet z identyfikatorem, możemy przyjrzeć się, jak current_test_case prac:

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

Człon m_curr_test_case jest test_unit_id, podobnie jak p_parent_id. Tak więc, aby uzyskać zestaw testów bieżącego przypadku testowego, można użyć to:

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

Wreszcie test_suite ma właściwość p_name jak unit_test, więc należy znaleźć tam nazwy.

+1

Dzięki! Użyłem: '(boost :: unit_test :: framework :: get (prnt_id_t)). P_name', a' prnt_id_t' to: 'boost :: unit_test :: framework :: current_test_case () .p_parent_id; ' – hudac