什么maven对kotlin黄瓜的依赖?

时间:2017-10-23 19:15:03

标签: maven cucumber kotlin pom.xml

我想使用kotlin原生步骤定义like

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)
    }

其中Given采用函数而不是注释。我不想使用像@Given("blabla") void blabla() { ... }这样的Java风格。

我尝试从示例中导入包:

package vc.capper.cutest;

import cucumber.runtime.kotlin.test

class SomeStepDefs
{
    Given("blabla") {
    }
}

kotlin无法找到包cucumber.runtime

我认为io.cucumber:cucumber-jvm(工件)[https://github.com/cucumber/cucumber-jvm/blob/master/pom.xml]附带cucumber-kotlin-java8,但它要么没有,要么不包含Given

这是我pom.xml的摘录 - 我想,有些遗失了,但是什么?

前奏:

<properties>
  <java.version>1.8</java.version>
  <kotlin.version>1.1.2-2</kotlin.version>
  <spring-boot.version>1.5.7.RELEASE</spring-boot.version>
  <cucumber.version>2.0.1</cucumber.version>
</properties>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
  ...
</dependencyManagement>

依赖关系:

<dependencies>
  <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-jvm</artifactId>
    <version>${cucumber.version}</version>
    <type>pom</type>
  </dependency>

  <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-spring</artifactId>
    <version>${cucumber.version}</version>
  </dependency>
  <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>${cucumber.version}</version>
    <scope>test</scope>
  </dependency>

  <dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-stdlib-jre8</artifactId>
    <version>${kotlin.version}</version>
  </dependency>

  ...
</dependencies>

更新并澄清:

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

missings

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

dependencies

2 个答案:

答案 0 :(得分:2)

看起来$ (set -o posix; set) | cut -d= -f1 | grep -i ^proxy PROXY_IP proxy_port 不是Kotlin特定的DSL /方法。它是Given的一部分。您所要做的就是从中扩展您的课程:

cucumber.api.java8.En

答案 1 :(得分:0)

<artifactId>cucumber-jvm</artifactId>更改为<artifactId>cucumber-java8</artifactId>以使用lambda样式定义。

注意目前没有黄瓜的原生Kotlin实施。