Cucumber 6 未定义的自定义步骤

Posted

技术标签:

【中文标题】Cucumber 6 未定义的自定义步骤【英文标题】:Cucumber 6 undefined custom step 【发布时间】:2021-12-27 21:38:31 【问题描述】:

我正在我的项目中升级 Cucumber 版本,并且自定义配置在版本 4 和 6 之间发生了更改。

我已经为参数类型注册了一个自定义关键字。

一切正常,步骤通过并生成值,但步骤仍标记为未定义

我使用 Intellij IDEA 和 Cucumber plugin for Java 是插件问题还是 y 代码中的某个地方?

黄瓜步:

When generate uniqueRandom(5) for test

Java 步骤:

@When("generate unique_random for test")
public void testStep(int randomNumber) 
    log.info(String.valueOf(randomNumber));

参数类型注册表:

@ParameterType(name = "unique_random", value = "uniqueRandom\\([0-9]+\\)")
public Integer randomNumber(String original) 
    return ... // some logic of creation

黄瓜版本: 6.8.1

我是否可以对这个警告做点什么?

【问题讨论】:

如果测试执行了,那就是IDEA的问题了。 是否可以调整配置中的某些内容来修复它? 向 IDEA 提交错误报告。 【参考方案1】:

Cucumber API 和 Cucumber 插件似乎有问题。

我更改了我的参数类型注册方法

来自:

@ParameterType(name = "unique_random", value = "uniqueRandom\\([0-9]+\\)")
public Integer randomNumber(String original) 
    return ... // some logic of creation

@ParameterType(value = "uniqueRandom\\([0-9]+\\)")
public Integer unique_random(String original) 
    return ... // some logic of creation

@ParameterType.name()

的文档中描述了这个解决方案

参数类型的名称。这用作 typed 中的类型名称 表达式。如果未提供,则默认为 带注释的方法。

插件不解析注解中的参数名,而是解析为方法名。

【讨论】:

以上是关于Cucumber 6 未定义的自定义步骤的主要内容,如果未能解决你的问题,请参考以下文章

WebStorm中的“未定义步骤引用”在尝试时引用TypeScript步骤定义代码

Selenium (Eclipse) - 功能文件 - 如果未定义步骤定义,则不突出显示步骤

Cucumber / Capybara 错误:参数 [0] 未定义(Selenium::WebDriver::Error::JavascriptError)

在我的自定义 collectionView 布局中未调用 prepare()

未定义的方法`load_programming_language'

未找到 ID 未定义的自定义时间栏 - Vis js(更新到当前版本时)