如果我使用更新的 Cucumber 注释接口,如 'io.cucumber.java.en.Given',则找不到步骤定义

Step-definitions are not being found if I use newer Cucumber annotation interfaces like 'io.cucumber.java.en.Given'

我正在尝试在我的项目代码中使用新的 Cucumber 库 (v4.8.0),但面临功能和步骤定义问题 linking。

我之前的项目中使用的是旧版本的 Cucumber (v1.2.5)。 假设我当前项目中的某些设置不正确,我尝试匹配上一个项目中的 Cucumber 依赖项。但是我在那里也遇到了同样的问题

我也尝试验证我的特征文件中的空格,但没有成功,定义也没有被识别

My Feature File:
    Feature: Feature Test
    Scenario: Scenario One
    Given Scenario One - Step One

我的定义文件(使用旧注释 类 - 定义被识别):

 package definitions;
    import cucumber.api.java.en.Given;
    public class Feature1 {
        @Given("Scenario One - Step One")
        public void stepOne() {
        }
    }

我的定义文件(使用新注释 类 - 定义未被识别):

package definitions;
import io.cucumber.java.en.Given;
public class Feature1 {
    @Given("Scenario One - Step One")
    public void stepOne() {
    }
}

预期结果: 我期待新注释 类 应该能够识别 & link 特征步骤 & 定义

实际结果: 如果使用 'cucumber.api.java.en.Given' 则定义得到识别,但如果使用 'io.cucumber.java.en.Given' 则不识别

我遇到了类似的问题。我来自在我的步骤定义 java 文件

中使用以下内容
import cucumber.api.java.en.Given; 

然后我更新了以下包

  • cucumber 版本从 4.2.0 到 6.8.0
  • 小黄瓜版本从 5.1.0 到 15.0.2

我的 Intellij 不再识别我已经实现的步骤定义。 ;-(

在我用下一行替换我的导入后,它又可以正常工作了

import io.cucumber.java.en.Given;

所以我认为您需要更新黄瓜版本的版本号才能使用新注释 类。

我有一个类似的问题,使用下面的方法解决了。虽然它说已弃用,但 StepDefinitions 仍然链接到功能文件。

import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.And;

更新以下软件包 黄瓜版本从 4.2.0 到 6.8.0

对我有用!

它也适用于我的情况,将 cucumber.api.java.en 替换为 io.cucumber.java.en.Given