Получение разделов, которые будут запускаться в Catch

Среда модульного тестирования Catch2 позволяет вам тестовые разделы. Из документов:

TEST_CASE( "vectors can be sized and resized", "[vector]" ) {

std::vector<int> v( 5 );

REQUIRE( v.size() == 5 );
REQUIRE( v.capacity() >= 5 );

SECTION( "resizing bigger changes size and capacity" ) {
v.resize( 10 );

REQUIRE( v.size() == 10 );
REQUIRE( v.capacity() >= 10 );
}
SECTION( "resizing smaller changes size but not capacity" ) {
v.resize( 0 );

REQUIRE( v.size() == 0 );
REQUIRE( v.capacity() >= 5 );
}

// ...
}

Есть ли способ определить впереди, на момент testCaseStarting()какой список SECTIONЭто что особенный пробег? В качестве примера приведено:

TEST_CASE("a", "[tag]") {
SECTION("b") {
}

SECTION("c") {
SECTION("d") { }
SECTION("e") { }
}
}

Я хочу какой-то способ получить {b} для первого запуска, {c, d} для второго и {c, e} для третьего. Есть какой-либо способ сделать это?

0

Решение

Я так не думаю. SECTION расширяется в INTERNAL_CATCH_SECTION который просто if создание заявления SectionInfo экземпляр класса
:

   #define INTERNAL_CATCH_SECTION( ... ) \
if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
1

Другие решения

Нет, тем более что секции могут быть «динамическими» в том смысле, что они могут быть скрыты за дополнительными операциями if, выполняться внутри цикла и так далее.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector