java - 使用cucumber v1.2.4时运行cucumber测试的方法没有签名

标签 java eclipse groovy cucumber cucumber-junit

我在设置自己的开发环境时遇到问题。我正在将 eclipse phontom 与 eclipse-groovyCucumber Eclipse 插件一起使用,并希望加入使用 groovy 和 cucumber 编写测试代码的开发。

首先,我通过 maven 导入 cucumber (io.cucumber.cucumber-groovy:4.5.3) 的依赖项,一切正常。然而,几天后,同事告诉我,他们过去常常导入旧版本的依赖项(info.cukes.cucumber-groovy:1.2.4)。降级后我的笔记本电脑中的所有内容都损坏了。

例如,以下是 Given 的简单步骤定义。

package steps

import cucumber.api.groovy.EN
import cucumber.api.groovy.Hooks

this.metaClass.mixin(EN)
this.metaClass.mixin(Hooks)

Given(/an item ID which does not exist/) { ->
    documentId = "test_not_exist_" + UUID.randomUUID().toString()
}

当我在笔记本电脑上运行它时,出现以下异常。

No signature of method: steps.RawItemRetrieval.Given() is applicable for argument types: (java.lang.String, steps.RawItemRetrieval$_run_closure1) values: [an item ID which does not exist, steps.RawItemRetrieval$_run_closure1@45d2ade3]
Possible solutions: grep(), run(), run(), find(), every()
    at cucumber.runtime.groovy.GroovyBackend.loadGlue(GroovyBackend.java:85)
    at cucumber.runtime.Runtime.<init>(Runtime.java:91)
    at cucumber.runtime.Runtime.<init>(Runtime.java:69)
    at cucumber.runtime.Runtime.<init>(Runtime.java:65)
    at cucumber.api.cli.Main.run(Main.java:35)
    at cucumber.api.cli.Main.main(Main.java:18)

我应该做些什么才能使事情在依赖info.cukes.cucumber-groovy:1.2.4下工作?

以下是我可能相关的开发环境:

JDK: Amazon Corretto-8.212.04.2 (build 1.8.0_212-b04)
Maven: 3.3.9
Groovy compiler in eclipse: 2.4.17

如有任何建议,我们将不胜感激。谢谢!

最佳答案

好的,我想我已经找到原因了。可能是cucumber 1.2.4不支持以下格式的步骤定义导致的:

Given(/an item ID which does not exist/) { ->
    ....
}

当我将样式更改为正则表达式格式时,它再次起作用。

Given(~/^an item ID which does not exist$/) { ->
    ....
}

感谢 Mark Rotteveel 的建议!

关于java - 使用cucumber v1.2.4时运行cucumber测试的方法没有签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57019339/

相关文章:

java - 如何使用 org.json 库从 Java 中的 JSON 文件中获取每个键和值?

java - 生成额外类的 WSDL 到 Java 代码方法

java - 从菜单中选择帮助(警报对话框)选项时,应用程序停止工作

grails - Groovy 中的类转换异常

grails - Groovy/Grails promise / future 。没有 .resolve(1,2,3) 方法。奇怪的?

gradle - 跳过任务,因为它没有源文件

java - 榛卡斯特 map : remove entries owned by the node that goes down

java - 在 Windows 上无需管理员权限运行 Hadoop MR 作业

Java正则表达式用符号替换新行

c++ - Eclipse[HELIOS] CDT : Autocomplete, STL 不能与 Eclipse 一起工作..帮助!