如果我使用较新的Cucumber注释接口(如“ io.cucumber.java.en.Given”),则找不到步骤定义

时间:2019-10-19 17:47:29

标签: cucumber gherkin cucumber-java

我试图在我的项目代码中使用新的Cucumber库(v4.8.0),并遇到功能和步进定义链接的问题。

我以前的项目中使用的是旧版本的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() {
    }
}

预期结果: 我希望新的注释类应该能够识别并链接特征步骤和定义

实际结果: 如果使用“ cucumber.api.java.en.Given”,则可以识别定义,但如果使用“ io.cucumber.java.en.Given”,则无法识别

4 个答案:

答案 0 :(得分:1)

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

为我工作!

答案 1 :(得分:0)

我有类似的问题。我来自在我的步骤definiton java文件中使用以下内容

import cucumber.api.java.en.Given; 

然后我更新了以下软件包

  • 黄瓜版本从4.2.0到6.8.0
  • gherkin版本从5.1.0到15.0.2

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

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

import io.cucumber.java.en.Given;

因此,我认为您需要更新黄瓜版本的版本号,以使用新的注释类。

答案 2 :(得分:0)

我有一个类似的问题,可通过以下方法解决。尽管它已弃用,但仍将StepDefinitions链接到Feature文件。

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

答案 3 :(得分:0)

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