Intellij,黄瓜测试和两个弹簧上下文配置



我的项目有两个不同的黄瓜测试,每个测试都需要不同的弹簧上下文配置。

我遇到的问题是,当我从 Intellij 单独运行每个测试时,它们加载正确的 Spring 上下文并且测试通过,但我按运行所有测试,没有一个通过。

运行 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 {
......
}

非常感谢您的帮助

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

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

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

我实际上正在研究黄瓜的替代实现,其中包含您可能想尝试的改进的弹簧集成。不过,它还没有与IntelliJ完全集成。

最新更新