You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅运行Cucumber场景大纲中的指定示例行?

Cucumber 筛选Scenario Outline特定示例行的方法

当然可以不用拆分场景大纲,Cucumber提供了多种运行时过滤示例行的方式,以下是几种实用方法:

1. 给单个示例行加标签

直接给目标示例行添加专属标签,运行时通过标签筛选:

Scenario Outline: eating
  Given there are <start> cucumbers
  When I eat <eat> cucumbers
  Then I should have <left> cucumbers

  Examples:
    | start | eat | left |
    @run-only-this
    |    12 |   5 |    7 |
    |    20 |   5 |   15 |

运行时指定标签(以Maven为例):

mvn test -Dcucumber.filter.tags="@run-only-this"

2. 通过示例名称/参数组合过滤

Cucumber会自动给每个示例生成包含参数的名称,你可以通过filter.name参数匹配这些名称:

# 匹配包含start=12的示例
mvn test -Dcucumber.filter.name=".*start 12.*"
# 精准匹配参数组合(12、5、7)的示例
mvn test -Dcucumber.filter.name="eating.*12.*5.*7"

你也可以给Examples块自定义名称,让过滤更直观:

Scenario Outline: eating
  Given there are <start> cucumbers
  When I eat <eat> cucumbers
  Then I should have <left> cucumbers

  Examples: 初始12根的场景
    | start | eat | left |
    |    12 |   5 |    7 |
  Examples: 初始20根的场景
    | start | eat | left |
    |    20 |   5 |   15 |

然后通过自定义名称过滤:

mvn test -Dcucumber.filter.name="初始12根的场景"

3. 直接按列值过滤(部分版本支持)

部分新版Cucumber支持cucumber.filter.examples参数,直接通过列名和值筛选:

mvn test -Dcucumber.filter.examples="start=12"

这些方法都不用拆分场景大纲,比拆分后加@ignore标签更灵活高效。

内容的提问来源于stack exchange,提问作者vivek_ganesan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:54:24