如何在Cucumber feature文件中隐藏指定注释的运行输出?
解决方案
原生Gherkin语法本身就支持区分要输出的注释和元注释,无需额外插件,可按以下方法实现:
- 利用注释关联规则过滤
Gherkin解析器只会把紧接在Feature、Scenario、Rule、Example等Gherkin核心元素之前的连续无空行注释,识别为元素描述输出到运行日志和报告中。该规则是Gherkin官方语法规范明确规定的,兼容性覆盖所有主流Cucumber版本(Ruby版、Java版、JS版等)。你只需要在元注释块和需要对外展示的普通注释之间加1行空行,元注释就不会被关联到后续的核心元素,自然不会出现在输出结果中。
示例:
#-- # 这是元注释:Emacs本地变量配置 # eval: (setq gherkin-indent-level 2) #++ # 以下是功能描述注释,会正常输出 Feature: 订单查询功能 场景: 普通用户查询自有订单 假如 我已登录普通用户账号 当 我进入订单列表页面 那么 页面会展示我名下的所有订单 # 这是中间的元注释:待补充异常场景 # 后续要添加查询已删除订单、跨用户查询的用例 # 场景描述注释,会正常输出 场景: 管理员查询所有用户订单 假如 我已登录管理员账号 ...
统一标记批量过滤
如果团队需要明确区分两类注释,可以统一约定元注释的固定前缀(比如##开头、或者带[META]标记),再自定义Cucumber格式化器的输出逻辑,过滤所有匹配前缀的注释行即可,适配所有版本的Cucumber实现。末尾放置元注释
你之前测试的「把元注释放在所有Gherkin元素之后的文件末尾」的方法同样有效,这类没有后续核心元素关联的注释本身就不会被解析器提取输出。
内容的提问来源于stack exchange,提问作者RoUS
相关产品推荐
相关产品推荐

