【问题标题】:Cucumber with Kotlin: Problems with duplicate step definitionsCucumber with Kotlin:重复步骤定义的问题
【发布时间】:2019-09-26 11:53:17
【问题描述】:

在将 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") {

詹金斯声称的错误信息:

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 中使用这个,问题似乎是别的。

有什么想法吗?周围似乎没有太多关于 Cucumber 和 Kotlin 的信息。

【问题讨论】:

  • 你可能仍然有 java 类的测试方法与 kotlin 测试方法同名
  • 我可能有,但我没有。我一直在小心翼翼地一一搬家。

标签: kotlin cucumber


【解决方案1】:

由于显然几乎没有人使用 kotlin 和 cucumber,我将分享我在测试和测试和测试后发现的自己:

Cucumber 无法使用默认参数值处理步骤定义

我知道 cucumber 无法使用默认参数值,但我不认为将它们放在那里会导致看似完全虚假的错误(重复的步骤定义)。但是,确实如此。我有几个步骤定义方法也被其他步骤定义方法使用。对于那些人来说,拥有默认参数值是有意义的,并创建了更整洁的代码。但是,唉,当涉及 Cucumber 时,它就不起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多