java - 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
是否可以从我这边对这个警告做点什么?
解决方案
看起来 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()的文档中描述了此解决方案
参数类型的名称。这用作类型化表达式中的类型名称。如果未提供,这将默认为带注释的方法的名称。
该插件不会解析注释中的参数名称,而是解析为方法名称。
推荐阅读
- python - 使用 Selenium 检查 AngularJS 复选框
- javascript - 从存储在数据库中的信息中检索嵌套详细信息
- unity3d - 无法在 Unity 的编辑器模式下单击 UI 元素
- grafana - Grafana CloudWatch 查询以引用 SERVICE_QUOTA
- sql - 当出现不同列中的值时需要对数字求和
- sqlite - 增加电视马拉松的会话规模
- ios - 使用 Xcode 13 在 iOS 15 中退出暗模式
- azure-devops - 如何在不获取模板菜单的情况下运行 Azure CLI az pipelines create
- git - 即使本地克隆的存储库只有 150 MB,我的 gitlab 存储库大小仍然超过 2 GB
- android - 来自 FirebaseMessagingService 的 Kotlin MainActivity WebView loadUrl