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

如何通过Runner.runFeature执行feature文件中的指定场景或标签?

运行Feature文件中指定标签的场景

你之前的链式调用写法不对——runFeature是直接触发用例执行的方法,不会返回可继续配置的对象,所以后面加.tags("@smoke")根本不会生效。要只运行带特定标签的场景,试试下面几种方法:

方法1:通过传入的Map配置标签

如果你的Runner支持通过参数Map传递过滤规则,直接在var里加标签配置就行:

Map<String, Object> var = new HashMap<>();
// 添加标签过滤,只跑带@smoke的场景
var.put("tags", "@smoke");
Map<String, Object> testing = Runner.runFeature("classpath:jtr/setup.feature", var, true);

方法2:用构建器模式配置(如果Runner支持)

有些测试框架的Runner会提供构建器来逐步配置参数,先把所有配置(包括标签)设置好再执行,比如:

// 示例:假设存在RunnerBuilder类
RunnerBuilder runnerBuilder = new RunnerBuilder()
    .setFeaturePath("classpath:jtr/setup.feature")
    .setTags("@smoke")
    .setVariables(new HashMap<>())
    .setDryRun(true); // 对应你代码里的第三个参数true
Map<String, Object> testing = runnerBuilder.execute();

方法3:检查Runner的重载方法

看看Runner类有没有带标签参数的重载版runFeature,比如:

// 假设存在这种重载方法
Map<String, Object> testing = Runner.runFeature("classpath:jtr/setup.feature", var, true, "@smoke");

另外要确认你的Feature文件里,目标场景确实加了@smoke标签,比如:

Feature: 初始化设置
@smoke
Scenario: 初始化API A
Given 系统已启动
When 调用初始化API A
Then 返回状态码200

Scenario: 初始化API B
Given 系统已启动
When 调用初始化API B
Then 返回状态码200

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:15:37