c++ - 获取将在 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 );
}
// ...
}
有没有办法预先确定特定运行的 s列表testCaseStarting()
是什么?SECTION
例如,给定:
TEST_CASE("a", "[tag]") {
SECTION("b") {
}
SECTION("c") {
SECTION("d") { }
SECTION("e") { }
}
}
我想要一些方法来获得{b}
第一次,{c, d}
第二次和{c, e}
第三次。有没有办法做到这一点?
解决方案
我不这么认为。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__ ) )
推荐阅读
- arrays - 数组包含来自另一个数组的每个值?
- javascript - 函数中的Javascript tyepscrypt错误
- groovy - 在 Groovy 中使用 JavaConfig stepScope() 会导致 NullPointerException
- javascript - HTML 表单:将 div 设为提交按钮
- php - 使用 PHP Simple HTML Parser 查找前面的元素
- javascript - 使用 RegEx 删除字符串中“/”后的空格
- html - CSS将2个表单字段彼此相邻
- r - R中的符号简化和排序项
- swift - Eureka - 自定义内联行
- java - 如何在 iBatis 中将 CURSOR 映射到 Map