首页 > 解决方案 > Cucumber 6 未定义的自定义步骤

问题描述

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

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

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

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

黄瓜步骤:

When generate uniqueRandom(5) for test

在此处输入图像描述

爪哇步骤:

@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

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

标签: javaregexspringcucumberregular-language

解决方案


看起来 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()的文档中描述了此解决方案

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

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


推荐阅读