gpt4 book ai didi

c++ - 获取将在 Catch 中运行的部分

转载 作者:行者123 更新时间:2023-11-28 01:33:55 26 4
gpt4 key购买 nike

Catch2 单元测试框架让您拥有 test sections .来自文档:

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} 第三个。有什么办法吗?

最佳答案

我不这么认为。 SECTION 扩展为 INTERNAL_CATCH_SECTION这只是创建 SectionInfo 类实例的 if 语句:

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

关于c++ - 获取将在 Catch 中运行的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50262251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com