【问题标题】:Run Cucumber tests with and without Spring context在有和没有 Spring 上下文的情况下运行 Cucumber 测试
【发布时间】:2022-01-04 10:41:42
【问题描述】:

我正在尝试将 Cucumber 集成到现有的 Spring Boot 项目中。
当前项目是单个 Maven 模块。
单元测试(没有 Spring 上下文)和集成测试(有 Spring 上下文)组合在同一个测试文件夹中。

我想做的是能够同时适应我的单元测试和集成测试。
但是,一旦我添加了 cucumber-spring 依赖项(以便能够在规范旁边运行 Spring 上下文),它就会要求文件夹中的所有测试都使用 @CucumberContextConfiguration 进行注释。

下面是我的测试套件配置为获取测试规范。

@Suite
@IncludeEngines("cucumber")
@SelectClasspathResource("org/example/project")
@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty")
public class CucumberTest {
}

是否可以将这两种测试结合起来? 如果是怎么办?

关于我正在使用的信息:

  • 黄瓜 7.1.0
  • JUnit 平台套件 1.8.2
  • JUnit 5.8.2

【问题讨论】:

    标签: spring cucumber


    【解决方案1】:

    您可以通过cucumber.object-factory 属性控制使用的对象工厂。所以假设你有一个或多个对象工厂作为你的依赖:

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-spring</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-picocontainer</artifactId>
        <scope>test</scope>
    </dependency>
    

    然后你可以选择弹簧:

    @ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.spring.SpringFactory")
    

    Pico 容器:

    @ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory")
    
    

    或者从 v7.1 开始,都没有:

    @ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.core.backend.DefaultObjectFactory")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 2023-01-09
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多