如何在Catch2测试标签中组合AND与OR逻辑筛选测试用例?
Catch2 精准筛选指定语言的ModelVerification测试用例
我有一组按语言和类型划分的Catch2测试用例,示例如下:
TEST_CASE("zh-CN CPU test", "[zh-CN][cpu]") { REQUIRE(result); } TEST_CASE("zh-CN verification test", "[zh-CN][ModelVerification]") { REQUIRE(result); } TEST_CASE("zh-HK CPU test", "[zh-HK][cpu]") { REQUIRE(result); } TEST_CASE("zh-HK verification test", "[zh-HK][ModelVerification]") { REQUIRE(result); } TEST_CASE("zh-TW CPU test", "[zh-TW][cpu]") { REQUIRE(result); } TEST_CASE("zh-TW verification test", "[zh-TW][ModelVerification]") { REQUIRE(result); }
我希望仅运行zh-HK和zh-TW的ModelVerification测试,但使用[zh-HK],[zh-TW] [ModelVerification]时,Catch2会运行所有zh-HK、zh-TW的测试以及所有ModelVerification测试,请问该如何实现需求?
解决方案
使用Catch2的标签组合逻辑,将语言标签与类型标签绑定后再用逗号分隔实现“或”逻辑,具体命令行参数如下:
[zh-HK][ModelVerification],[zh-TW][ModelVerification]
逻辑说明
- 每个
[标签A][标签B]表示同时匹配标签A和标签B(逻辑与) - 逗号分隔的两组条件表示满足任意一组即可(逻辑或)
这样就能精准选中:
- 同时带有
zh-HK和ModelVerification标签的测试用例 - 同时带有
zh-TW和ModelVerification标签的测试用例
完全排除其他无关测试(比如zh-HK的CPU测试、zh-CN的ModelVerification测试等)。
内容的提问来源于stack exchange,提问作者Eric Brown
相关产品推荐
相关产品推荐

