黄瓜与junit5和java8

时间:2021-01-09 00:30:18

标签: java-8 cucumber junit5

我正在尝试为用 java11 编写的 Spring Boot 应用程序创建 BDD 测试,并使用 junit5 进行测试。

我正在尝试 6.9.1 版的黄瓜,我对这部分的依赖是:

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

没有一个例子,我可以在黄瓜文档中找到我尝试融合一些我在网上找到的片段,这些片段显示这个依赖列表就足够了,但是,当我尝试他们的样本时,我找不到以下任何一个:< /p>

  1. CucumberExtension - 相反,有一个注释 @Cucumber 似乎正在这样做。
  2. @CucumberOptions - 有一个接口 CucumberOptions,我可以实现并返回所有必需的属性,但这感觉就像是参数化注释的后退。

谁能提供指南、文档或任何其他方式来实现我的目标?

谢谢

1 个答案:

答案 0 :(得分:1)

JUnit 5 的介绍值得一读。您常犯的一个错误是认为 JUnit 5 是一个整体。而是:

https://junit.org/junit5/docs/current/user-guide/#overview-what-is-junit-5

<块引用>

与以前版本的 JUnit 不同,JUnit 5 由来自三个不同子项目的几个不同模块组成。

JUnit 5 = JUnit 平台 + JUnit Jupiter + JUnit Vintage

与 JUnit Jupiter 一样,Cucumber 是一个使用 JUnit 平台的测试引擎。扩展是 JUnit Jupiter 的一个概念,不会延续到 Cucumber。

<块引用>

我在黄瓜文档中找不到一个例子。

在 JUnit 5 集成功能完成之前,您将不会在主文档中找到任何内容。在此之前,完全可以使用 Cucumbers JUnit 4 与 JUnit Vintage 的集成。

但是,如果您更有实验意识,可以使用包含源代码的文档:

https://github.com/cucumber/cucumber-jvm/tree/main/junit-platform-engine

<块引用>

@CucumberOptions - 有一个接口 CucumberOptions,我可以实现并返回所有必需的属性,但这感觉就像是参数化注释的后退。

Cucumber JUnit 平台集成默认扫描类路径根上的胶水和功能。如果遵循常规的 maven/gradle/java 项目布局,则无需额外配置。

因此步骤定义在 src/test/java/com/example 中,特征在 src/test/resources/com/example 中。

如果您有更复杂的设置,您应该等待并使用 JUnit4/Junit Vintage 或简化您的设置。