在将Som Java步骤定义转换为Kotlin之后,我得到了“重复步骤定义”。 Jenkins将以下步骤定义标识为重复项:
@Given("^that \"([^\"]*)\" is a case in city \"([^\"]*)\" to buy a specific house with code$")
fun theCaseIsACaseInCityToBuySpecificHouseWithCode(caseTag: String, city: String) {
@Given("^that \"([^\"]*)\" is a case in city \"([^\"]*)\" to buy a specific house$")
fun theCaseIsACaseInCityToBuySpecificHouse(caseTag: String = "case", city: String = "5035") {
Jenkins声称的错误消息:
cucumber.runtime.DuplicateStepDefinitionException:
Duplicate step definitions in void e2e.case.CreateCaseSteps
.theCaseIsACaseInCityToBuySpecificHouse(String,String)
in file:/tmp/workspace/EST_cases_PR-12432/e2e/cucumber/target/test-classes/
and
e2e.case.CreateCaseSteps.theCaseIsACaseInCityToBuySpecificHouse
$default(OpprettSakSteps,String,String,int,Object)
我也看到过与Java类似的问题,但是我似乎想起了这个问题,即最后一个“ $”缺失了,因此第二行将“等于”第一行。
在Kotlin中,问题似乎出在其他方面。
有什么想法吗?周围似乎没有太多有关黄瓜和科特林的信息。
由于显然几乎没有人使用kotlin和黄瓜,我将分享经过测试,测试和测试后发现的东西:
黄瓜无法使用默认参数值处理步骤定义
我知道Cucumber无法利用默认参数值,但我不认为仅在其中使用默认参数值会导致看似完全虚假的错误(重复的步骤定义)。但是,确实如此。我有几个步骤定义方法,其他步骤定义方法也使用了这些方法。对于这些用户,使用默认参数值很有意义,并且可以创建更整洁的代码。但是,可惜,当涉及到黄瓜时,它是行不通的。