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

无需修改Feature文件路径,在Cucumber中运行指定场景的方法

解决Cucumber自动识别带@run标签场景的配置方案

只需要修改@CucumberOptions中的features配置,让它指向所有feature文件的根目录,Cucumber会自动递归扫描所有子目录下的feature文件,再结合已有的tags="@run"配置,就能自动执行所有带该标签的场景,无需每次手动指定具体文件路径。

修改后的完整代码

@RunWith(Cucumber.class)
@CucumberOptions(
        features = {"src/test/resources/features"}, // 改为feature根目录,递归扫描所有子目录
        plugin = {"pretty", "html:target/cucumber-report.html"},
        glue={"steps"},
        tags = "@run",
        monochrome = true)
public class CukesFeaturesRunnerTest {

    @BeforeClass
    public static void executeBeforeTests() {
        if (StringUtils.equalsAnyIgnoreCase(getConfigValue("env"), "ci")) {
            System.out.println("Running test in headless mode");
            Configuration.headless = true;
        }
        Configuration.timeout = 12000;
        Configuration.browserSize = "1600x900";
        PluginsApi pluginsApi = new PluginsApi();
        XolaApi xolaApi = new XolaApi();

        if (StringUtils.equalsAnyIgnoreCase(getConfigValue("env"), "ci")) {
            if (StringUtils.containsIgnoreCase(System.getenv("GO_JOB_NAME"), "traveler-app")) {
                xolaApi.verifyX2TravelerAppIsRunning();
                xolaApi.verifyX2SellerAppIsRunning();
            } else {
                xolaApi.verifyX2SellerAppIsRunning();
            }
        }

        pluginsApi.getAllInstalledPluginId();
    }

    @AfterClass
    public static void executeAfterTests() {
    }
}

关键说明

  1. features路径修改:把原来的单个文件路径替换为feature根目录src/test/resources/features,Cucumber会自动遍历该目录下所有子文件夹中的.feature文件。
  2. tags过滤生效:保留tags = "@run"配置,Cucumber会从所有扫描到的feature文件中,筛选出带有@run标签的场景执行。
  3. 额外优化:移除了原代码BeforeClass中重复的Configuration.headless = true;行,避免逻辑冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:41:13