是否有可能在 Cucumber 的步骤中获得场景?

Posted

技术标签:

【中文标题】是否有可能在 Cucumber 的步骤中获得场景?【英文标题】:Is it possible to get scenario inside the step in Cucumber? 【发布时间】:2021-07-22 16:09:33 【问题描述】:

我需要在特定位置的步骤内制作屏幕截图。这意味着不在@BeforeStep 或@AfterStep 上。我需要打电话

// public void someStep(Scenario scenario)  // This does not work

public void someStep()

    page.openUrl();
    scenario.attach(screenshot(), "image/png", fileName1);
    page.doSomething();
    scenario.attach(screenshot(), "image/png", fileName2);
    page.doSomethingElse();

但我无法获得与步骤执行相关的当前场景。有没有可能?我尝试将其称为 someStep(Scenarion scenario) 但它会引发错误。

【问题讨论】:

你不能通过依赖注入到你的步骤定义类中获取 Scenario 对象吗?我知道你可以为黄瓜配置一个 DI 框架。我只是在 Java 方面没有太多经验,仅此而已。 见cucumber.io/docs/cucumber/state/#dependency-injection 谢谢我知道你的意思。不知道能不能实现。 【参考方案1】:

如果您想访问场景对象,最好的选择是 AfterStep 挂钩。但是,所有口味的黄瓜都支持此功能。最好的办法是检查您的语言的文档或 API 文档

【讨论】:

@AfterStep 为时已晚。

以上是关于是否有可能在 Cucumber 的步骤中获得场景?的主要内容,如果未能解决你的问题,请参考以下文章

Cucumber 场景未加入步骤代码

如何将场景绑定到cucumber java中的特定步骤类

DRY Cucumber 脚手架 CRUD 步骤或场景

行为驱动:Cucumber + Selenium + Java - Cucumber简单操作实例

Cucumber V5-V6 - 在特征文件步骤中传递复杂对象

如何在 Cucumber 测试套件中订购功能文件?