使用 Cucumber v1.2.4 时没有 运行 Cucumber 测试的方法签名
No signature of method for running cucumber test when using cucumber v1.2.4
我在设置自己的开发环境时遇到问题。我正在使用 eclipse-groovy
和 Cucumber Eclipse plugin
的 eclipse phontom,并想加入使用 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 的建议!
我在设置自己的开发环境时遇到问题。我正在使用 eclipse-groovy
和 Cucumber Eclipse plugin
的 eclipse phontom,并想加入使用 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 的建议!