关于ctest -R参数所用正则表达式语法的技术咨询
CTest正则表达式语法详解(针对多测试用例筛选)
我来帮你梳理下CTest正则表达式的使用细节,刚好能解决你要指定多个测试用例运行的需求~
首先明确:CTest 使用的是POSIX扩展正则表达式(Extended Regular Expressions, ERE),这是Unix/Linux系统里常用的正则标准,和grep -E这类工具的语法完全一致,上手成本很低。
核心语法要点(贴合你的需求)
- 或操作(
|):这正是你需要的多测试用例匹配方式,直接用|分隔不同的测试用例名称即可。比如你写的:
这个命令会精准匹配名称为ctest -R "SomeTest|SomeOtherTest"SomeTest或者SomeOtherTest的测试用例,完全符合你的预期。 - 精确匹配防护:如果担心匹配到类似
SomeTestExtra或OtherSomeTest这类无关用例,可以用^(匹配字符串开头)和$(匹配字符串结尾)包裹每个用例名,比如:ctest -R "^SomeTest$|^SomeOtherTest$" - 常用通配场景:
.匹配任意单个字符*匹配前面的字符0次或多次+匹配前面的字符1次或多次
比如ctest -R "Test.*"会匹配所有以Test开头的测试用例,ctest -R "Test[0-9]+"会匹配Test1、Test23这类带数字后缀的用例。
小提示
- 如果在Windows的CMD终端执行,可能需要调整引号的使用(换成双引号或者适当转义),用PowerShell或类Unix终端会更顺畅。
- 你使用的3.7版本CTest完全支持上述ERE核心语法,你的示例命令可以直接正常运行。
内容的提问来源于stack exchange,提问作者danba
相关产品推荐
相关产品推荐

