运行 Cucumber 测试有无 Spring 上下文
Run Cucumber tests with and without Spring context
我正在尝试将 Cucumber 集成到现有的 Spring 引导项目中。
当前项目是单个Maven模块。
单元测试(没有 Spring 上下文)和集成测试(有 Spring 上下文)组合在同一个测试文件夹中。
我想做的是能够调整我的单元测试和集成测试。
但是一旦我添加 cucumber-spring
依赖项(为了能够 运行 一个 Spring 上下文与规范一起)它要求文件夹中的所有测试都用 [=14= 注释].
下面是我配置的测试套件以获取测试规范。
@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
您可以通过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>
然后您可以 select spring 使用:
@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")
我正在尝试将 Cucumber 集成到现有的 Spring 引导项目中。
当前项目是单个Maven模块。
单元测试(没有 Spring 上下文)和集成测试(有 Spring 上下文)组合在同一个测试文件夹中。
我想做的是能够调整我的单元测试和集成测试。
但是一旦我添加 cucumber-spring
依赖项(为了能够 运行 一个 Spring 上下文与规范一起)它要求文件夹中的所有测试都用 [=14= 注释].
下面是我配置的测试套件以获取测试规范。
@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
您可以通过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>
然后您可以 select spring 使用:
@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")