2013-08-28 9 views
8

Ich benutze BOOST TEST und ich frage mich, ob es eine Möglichkeit gibt, die test suite von innerhalb der test case herauszufinden. Ich weiß, dass ich test case die Namen von finden:Get BOOST TEST Testsuite Name in einem Testfall

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

Gibt es eine Möglichkeit, die Suite Namen auch, um herauszufinden?

Meine Suiten-Fälle Struktur ist:

suite ---> case 1

______|--> case 2

______|--> case 3

Dank

Antwort

5

A unit_test nicht nur p_name hat, sondern auch p_parent_id, das ist die ID die Testsuite. Beide Eigenschaften werden von test_unit geerbt. Dies ist die gemeinsame Basisklasse für unit_test und test_suite.

Um die Suite aus der ID zu bekommen, können wir, wie current_test_case Werke aussehen:

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

Das m_curr_test_case Mitglied ist ein test_unit_id, wie p_parent_id. Also, die Testsuite des aktuellen Testfall zu erhalten, können Sie diese verwenden:

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

Schließlich test_suite hat eine p_name Eigenschaft wie unit_test, so dass Sie den Namen dort finden sollte.

+1

Danke! Ich habe verwendet: '(boost :: unit_test :: framework :: get (prnt_id_t)). P_name', während' prnt_id_t' ist: 'boost :: unit_test :: framework :: current_test_case () .p_parent_id; ' – hudac