2013-08-28 5 views
8

Я использую BOOST TEST, и мне интересно, есть ли способ узнать test suite изнутри test case. Я знаю, что я могу найти имя test case «S по:Получите имя тестового набора BOOST TEST в тестовом кейсе

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

Есть ли способ узнать имя люкс также?

Мои костюмы футляры структура:

suite ---> case 1

______|--> case 2

______|--> case 3

Благодаря

ответ

5

unit_test не только p_name, но и p_parent_id, который является идентификатором набор тестов. Оба этих свойства наследуются от test_unit, который является общим базовым классом для unit_test и test_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, так что вы должны найти там имя.

+1

Спасибо! Я использовал: '(boost :: unit_test :: framework :: get (prnt_id_t)). P_name', а' prnt_id_t': 'boost :: unit_test :: framework :: current_test_case () .p_parent_id; ' – hudac