使用黄瓜v1.2.4时运行黄瓜测试的方法没有签名

时间:2019-07-13 12:50:11

标签: java eclipse groovy cucumber cucumber-junit

我在设置自己的开发环境时遇到问题。我正在使用eclipse-groovyCucumber Eclipse plugin的eclipse phantom,并且希望加入使用Groovy和Cucumn编写测试代码的开发。

首先,我通过maven导入了对黄瓜(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

任何建议将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

当我将样式更改为正则表达式格式时,它又可以正常工作。

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

感谢Mark Rotteveel的建议!