在 Cucumber 中,是否可以以编程方式获取正在执行的当前步骤?步骤、方式、Cucumber

2023-09-07 23:39:09 作者:我的心脏り你的摸样

Scenario: As a user, I want to login to the system
Given I am on my website
When I enter valid credentials
Then I am taken to the home page

可以使用 getName() 函数检索场景名称.有没有办法也让正在执行的步骤(在 Java 中)?我们预计将在日志记录和报告中使用它.

The scenario name can be retrieved using the getName() function. Is there a way to also get the step being executed (in Java)? We foresee the use of this in logging and reporting.

因此,对于上述场景,I am on my website 将在执行相应的步骤定义时返回.

So, for the scenario above, I am on my website would be returned while the corresponding step definition is being executed.

推荐答案

我们通过将整个步骤作为参数包装到步骤定义中来解决了这个问题.换句话说,步骤

We solved this problem by wrapping the entire step as a parameter into the Step Definition. In other words, the step

Given I am on my website

翻译成

'Given I am on my website'

步骤定义实际上会接受一个字符串参数,该参数将对应于步骤

And the step definition will actually accept a string parameter that will correspond to the step

    @And("(.*)") //plus something specific to map step
    public void Initialization(String step) throws Exception {
            //do something with step
    }