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

如何在测试中获取Gherkin特性文件的Scenario/Scenario Outline描述?

获取Gherkin场景/场景大纲的描述信息

不同BDD测试框架都提供了直接获取场景描述的方式,以下是主流框架的实现方法:

1. Cucumber Java

在步骤定义类中,通过Scenario对象注入并获取:

import io.cucumber.java.Scenario;

public class StepDefinitions {
    private Scenario scenario;

    // 构造方法注入Scenario对象
    public StepDefinitions(Scenario scenario) {
        this.scenario = scenario;
    }

    @Given("...")
    public void someStep() {
        // 获取场景名称
        String scenarioName = scenario.getName();
        // 可将名称用于日志打印、数据库关联等场景
        System.out.println("当前执行测试:" + scenarioName);
    }
}

如果是Scenario Outline,获取到的会是替换占位符后的实际场景名称(比如原大纲为Create a customer that has <item> items,执行时会返回Create a customer that has 3 items这类具体名称)。

2. Cucumber Python

通过context对象的scenario属性获取:

from behave import given

@given("...")
def step_impl(context):
    # 获取场景名称
    scenario_name = context.scenario.name
    # 直接使用场景名称
    print(f"当前执行测试:{scenario_name}")

Scenario Outline执行时会自动替换<item>这类占位符,返回实际运行的场景名称。

3. SpecFlow(.NET)

通过ScenarioContext获取场景标题:

using TechTalk.SpecFlow;

[Binding]
public class StepDefinitions
{
    [Given("...")]
    public void GivenSomeCondition()
    {
        string scenarioName = ScenarioContext.Current.ScenarioInfo.Title;
        // 使用场景名称
        Console.WriteLine($"当前执行测试:{scenarioName}");
    }
}

对于Scenario Outline,此处获取的也是替换参数后的实际场景标题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:28:19