Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
kotlin Cumber的maven依赖性是什么?_Maven_Cucumber_Kotlin_Pom.xml - Fatal编程技术网

kotlin Cumber的maven依赖性是什么?

kotlin Cumber的maven依赖性是什么?,maven,cucumber,kotlin,pom.xml,Maven,Cucumber,Kotlin,Pom.xml,我想使用kotlin本机步骤定义: 其中,给定的采用函数而不是注释。我不想使用Java样式,比如@Given(“blablabla”)void blabla(){…} 我尝试从示例中导入包: package vc.capper.cutest; import cucumber.runtime.kotlin.test class SomeStepDefs { Given("blabla") { } } 但是在cucumber.runtime中找不到包kotlin 我认为io.c

我想使用kotlin本机步骤定义:

其中,
给定的
采用函数而不是注释。我不想使用Java样式,比如
@Given(“blablabla”)void blabla(){…}

我尝试从示例中导入包:

package vc.capper.cutest;

import cucumber.runtime.kotlin.test

class SomeStepDefs
{
    Given("blabla") {
    }
}
但是在cucumber.runtime中找不到包
kotlin

我认为
io.cumber:cumber jvm
(工件)[附带
cumber-kotlin-java8
,但它要么不包含,要么不包含给定的

这是我的
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>

1.8
1.1.2-2
1.5.7.1发布
2.0.1
org.springframework.boot
...
依赖项:

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

黄瓜

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


看起来
给定的
不是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") {
        ...
    }
}
cucumber-jvm
更改为
cucumber-java8
以使用lambda样式的定义

注意目前还没有cucumber的本地Kotlin实现

另外,您所指的
cucumber-kotlin-java8
是如何将cucumber-java8与kotlin一起使用的示例


此外,您需要扩展
En
接口。

不,不是这样。我更新了QT中的信息这里没有工件
cucumber-kotlin-java8
,因为cucumber没有“特殊”的kotlin类。正如他们的文档中所述:“您可以直接在kotlin中使用
cucumber-java
cucumber-java8
。”另外,
cucumber.runtime.kotlin.test
包似乎是您的:
package cucumber.runtime.kotlin.test;
在第一个文件中。然后您尝试在
SomeStepDefs
中导入它。当我在IDE中导入时,它可以完美地工作。
package vc.capper.cutest;

import cucumber.runtime.kotlin.test
import cucumber.api.java8.En

class SomeStepDefs : En {
    Given("blabla") {
        ...
    }
}