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

Intellij、cucumber测试和两个spring上下文配置

阎渝
2023-03-14

运行一个maven测试,两个测试都通过了。

这是我的代码:

@RunWith(FCSCucumber.class)
@Cucumber.Options(strict = true
//        , tags = {"~@ignore"}
//        , tags = {"@Only"}
        , glue ="feature.scenario1"
        , features = "src/test/resources/feature/scenario1/"
)
@FCSApplicationProperties(commonProps="config/scenario1/exec.common.properties",
        environmentProps="src/test/resources/scenario1-test.properties")
public class TesScenario1Features {
	
}
@ContextConfiguration("/cucumber-scenario1.xml")
public class scenario1Steps {
......
}
@RunWith(FCSCucumber.class)
@Cucumber.Options(strict = true
//        , tags = {"~@ignore"}
//        , tags = {"@Only"}
        , glue ="feature.scenario2"
        , features = "src/test/resources/feature/scenario2/"
)
@FCSApplicationProperties(commonProps="config/scenario2/exec.common.properties",
        environmentProps="src/test/resources/scenario2-test.properties")
public class TesScenario2Features {
	
}
@ContextConfiguration("/cucumber-scenario2.xml")
public class scenario2Steps {
......
}

非常感谢你的帮助

共有1个答案

双俊人
2023-03-14

问题是IntelliJ cucumber插件使用cucumber cli运行测试,而根本没有使用JUnit runner。这导致了一些限制,比如要求在步骤定义类上而不是在运行器上使用spring注释,或者默认情况下要求步骤定义与场景文件在同一个包中。

在您的示例中,如果/cucumber-scence{1,2}.xml文件也引用了正确的应用程序属性,那么我实际上也希望运行单个测试失败。

我看到的标准cucumber实现的唯一选择是将测试提取到单独的项目中。

 类似资料:
  • 今天,我将我的项目从Spring Boot1.5.9更新到2.1.1,我的一些测试停止工作。当我开始测试时,控制台会弹出错误: com.example.rest.config.SecurityConfig中的authEntryPoint字段需要一个类型为“com.example.rest.service.auth.EntryPoints.AuthenticationEntryPoint”的bean

  • 我正在尝试将Cucumber集成到现有的Spring Boot项目中 当前项目是单个Maven模块 单元测试(不含Spring上下文)和集成测试(含Spring上下文)组合在同一个测试文件夹中。 我想做的是能够调整我的单元测试和集成测试。 但是一旦我添加了依赖项(为了能够在规范旁边运行Spring上下文),它就要求文件夹中的所有测试都用注释。 下面是我的测试套件,配置为获取测试规范。 是否可以将两

  • 我创建了多个spring-boot测试类(使用1.4.0)。 FirstActionTest。java: 第二个动作测试。java: 运行测试时通过: 运行测试 它似乎为每个测试类创建了一个Spring测试上下文,我想这不是必需的。 问题是: 可以在多个测试类之间共享单个spring测试上下文吗?如果可以,如何共享

  • 我们有一个基于Spring的JUnit测试类,它利用一个内部测试上下文配置类 最近,服务类中引入了新的功能,相关测试应添加到ServiceTest中。但是,这也需要创建不同的测试上下文配置类(现有配置类的内部结构相当复杂,如果可能的话,将其更改为既服务于旧测试又服务于新测试似乎非常困难) 有没有一种方法可以实现一个测试类中的某些测试方法将使用一个配置类,而其他方法将使用另一个?似乎只适用于类级别,