当前位置: 首页 > 知识库问答 >
问题:

在有或没有Spring上下文的情况下运行Cucumber测试

曾皓
2023-03-14

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

我想做的是能够调整我的单元测试和集成测试。
但是一旦我添加了cucumber-Spring依赖项(为了能够在规范旁边运行Spring上下文),它就要求文件夹中的所有测试都用@CucumberContextConfigance注释。

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

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

是否可以将两种测试结合起来?如果是,如何?

有关我使用的信息:

  • cucumber7.1.0
  • JUnit平台套件1.8.2
  • JUnit 5.8.2

共有1个答案

蒯硕
2023-03-14

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

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

然后,您可以使用以下选项选择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")
 类似资料:
  • 文档说这个库运行在GPU上。如果我功能强大的笔记本电脑没有GPU,我还能运行Deeplearning4J吗?

  • 我正在使用Cucumber for BDD、JUnit和Selenium构建一个自动化框架,我们在云中有一个testrail实例用于测试管理,我实现了testrail API以从那里获取所有测试用例,问题是我无法运行这些步骤获取测试用例,因为总是验证第一个功能文件是否存在。 我尝试过结果总是一样的: 在[classpath:features] 0场景0步骤0m0.019s中找不到功能 这是启动该过

  • 如何在不使用TestNG或JUnit的情况下并行运行Selenium测试用例。 目前我正在使用命令 客户端(节点)命令: java-jar selenium-server-standalone-2.35.0.jar-角色节点-hub Protocol://host:4444/grid/register-浏览器浏览器名=firefox,平台=WINDOWS maxInstances=3。 但它不起作

  • 我想以某种方式获得我在项目中使用的所有标签的列表,并获得我在项目中没有运行测试的cucumber场景的所有名称。有人能帮助我怎么做吗?

  • 问题内容: 我试图将配置(例如URLs / etc)放入资源文件夹中,以供实用程序类使用。但是,我不想从任何地方的活动中传递上下文。我希望能够通过路径名(似乎使用assess /是为此用途设计的)来访问资源,而无需使用上下文来访问资源。 在这种特殊情况下,我希望单例实例化时在配置中使用某些东西。除了实例化期间的那一次之外,它不需要任何资源。因此,每次调用getInstance()时都必须传递Con

  • 问题内容: 我想像运行shell命令: 不用任何插件就能做到吗?由于Jenkins不是,而是服务帐户,我该如何添加? 问题答案: 首先执行 然后执行 然后注销 对于注销很重要,因为您需要重新评估组成员身份 登录并重试 有用!