获取 Catch 中将 运行 的部分
Getting sections that will be run in Catch
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
的列表是什么? 27=]?例如,给定:
TEST_CASE("a", "[tag]") {
SECTION("b") {
}
SECTION("c") {
SECTION("d") { }
SECTION("e") { }
}
}
我想要一些方法来获得第一个 {b}
,第二个 {c, d}
,第三个 {c, e}
。有什么办法吗?
我不这么认为。 SECTION
扩展为 INTERNAL_CATCH_SECTION
这只是一个 if
语句创建 SectionInfo
class 实例
:
#define INTERNAL_CATCH_SECTION( ... ) \
if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
没有,特别是因为部分可以是 "dynamic" 因为它们可以隐藏在额外的 ifs 后面,在循环中 运行 等等。
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
的列表是什么? 27=]?例如,给定:
TEST_CASE("a", "[tag]") {
SECTION("b") {
}
SECTION("c") {
SECTION("d") { }
SECTION("e") { }
}
}
我想要一些方法来获得第一个 {b}
,第二个 {c, d}
,第三个 {c, e}
。有什么办法吗?
我不这么认为。 SECTION
扩展为 INTERNAL_CATCH_SECTION
这只是一个 if
语句创建 SectionInfo
class 实例
:
#define INTERNAL_CATCH_SECTION( ... ) \
if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
没有,特别是因为部分可以是 "dynamic" 因为它们可以隐藏在额外的 ifs 后面,在循环中 运行 等等。