什么matry依赖对kotlin黄瓜?

我想要使​​用kotlin本地步骤定义, 如 :

package cucumber.runtime.kotlin.test; ... class LambdaStepdefs : En { init { Before { scenario: Scenario -> assertNotSame(this, lastInstance) lastInstance = this } Given("^this data table:$") { peopleTable: DataTable -> val people = peopleTable.asList(Person::class.java) assertEquals("Aslak", people[0].first) assertEquals("Hellesøy", people[0].last) } 

Givenfunction,而不是一个注释。 我不想使用像@Given("blabla") void blabla() { ... }的Java风格@Given("blabla") void blabla() { ... }

我试图从示例中导入包:

 package vc.capper.cutest; import cucumber.runtime.kotlin.test class SomeStepDefs { Given("blabla") { } } 

但是在kotlin中找不到包kotlin

我认为io.cucumber:cucumber-jvm (神器)[ https://github.com/cucumber/cucumber-jvm/blob/master/pom.xml]带有cucumber-kotlin-java8 ,但是它不是或者它不包含说Given

这是我的pom.xml一个摘录 – 我想,有些缺失,但是什么?

序幕:

  1.8 1.1.2-2 1.5.7.RELEASE 2.0.1     org.springframework.boot ...  

依赖关系:

   io.cucumber cucumber-jvm ${cucumber.version} pom   io.cucumber cucumber-spring ${cucumber.version}   io.cucumber cucumber-junit ${cucumber.version} test   org.jetbrains.kotlin kotlin-stdlib-jre8 ${kotlin.version}  ...  

更新和澄清:

似乎缺少的包是cucumber.runtime.kotlincucumber.api.java8.En ,你可以从IntelliJ屏幕截图中看到:

missings

你也可以看到项目使用的实际依赖项列表:

依赖

看起来Given并不是Kotlin特定的DSL /方法。 它是cucumber.api.java8.En的一部分。 所有你需要做的就是从你的课程扩展:

 package vc.capper.cutest; import cucumber.runtime.kotlin.test import cucumber.api.java8.En class SomeStepDefs : En { Given("blabla") { ... } }