无需修改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() { } }
关键说明
- features路径修改:把原来的单个文件路径替换为feature根目录
src/test/resources/features,Cucumber会自动遍历该目录下所有子文件夹中的.feature文件。 - tags过滤生效:保留
tags = "@run"配置,Cucumber会从所有扫描到的feature文件中,筛选出带有@run标签的场景执行。 - 额外优化:移除了原代码
BeforeClass中重复的Configuration.headless = true;行,避免逻辑冲突。
内容的提问来源于stack exchange,提问作者Ash28
相关产品推荐
相关产品推荐

