2013-08-28 8 views
8

Sto usando BOOST TEST e mi chiedo se c'è un modo per scoprire lo test suite dall'interno dello test case. So che posso trovare il nome test case 's da:Ottieni il nome del test suite BOOST in un test case

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

C'è un modo per scoprire il nome interno anche?

My Suites-casi struttura è:

suite ---> case 1

______|--> case 2

______|--> case 3

Grazie

risposta

5

Un unit_test non solo ha p_name ma anche p_parent_id, che è l'ID del la suite di test. Entrambe queste proprietà sono ereditate da test_unit, che è la classe di base comune per unit_test e test_suite.

Per ottenere la suite dal ID, siamo in grado di guardare a come current_test_case opere:

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

Il membro m_curr_test_case è un test_unit_id, proprio come p_parent_id. Quindi, per ottenere la suite di test del caso di test corrente, è possibile utilizzare questo:

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

Infine, test_suite ha una proprietà p_name proprio come unit_test, così si dovrebbe trovare il nome.

+1

Grazie! Ho usato: '(boost :: unit_test :: framework :: get (prnt_id_t)). P_name', mentre' prnt_id_t' è: 'boost :: unit_test :: framework :: current_test_case () .p_parent_id; ' – hudac