Cucumber 从版本4升级到版本6时是否需要额外的上下文配置?

Cucumber 从版本4升级到版本6时是否需要额外的上下文配置?,cucumber,bdd,cucumber-jvm,cucumber-java,cucumber-junit,Cucumber,Bdd,Cucumber Jvm,Cucumber Java,Cucumber Junit,我正在使用cucumber jvm在Kotlin中执行一些功能测试 我有标准的空跑步者课程: @RunWith(Cucumber::class) @CucumberOptions(features=[foo], glue=[bar], plugin=[baz], strict=true, monochrome=true) class Whatever 实际步骤是在另一个类中使用@ContextConfiguration springframework注释定义的。

我正在使用cucumber jvm在Kotlin中执行一些功能测试

我有标准的空跑步者课程:

@RunWith(Cucumber::class)
@CucumberOptions(features=[foo],
    glue=[bar],
    plugin=[baz],
    strict=true,
    monochrome=true)
class Whatever
实际步骤是在另一个类中使用@ContextConfiguration springframework注释定义的。 此类还使用其他spring功能,如@Autowire或@Qualifier

@ContextConfiguration(locations=["x/y/z/config.xml"])
class MyClass {
    ...
    @Before
    ...

    @Given("some feature file stuff")
    ...

    // etc
}
这一切在cucumber版本4.2.0中都可以正常工作,但是升级到版本6.3.0会破坏一切。更新导入以匹配新的cucumber项目布局后,测试现在失败,出现以下错误:

io.cucumber.core.backend.CucumberBackendException:请使用一些上下文配置对一个glue类进行注释

它提供了它意味着什么的例子

例如:

或:

它似乎告诉我,我可以将@CucumberContextConfiguration添加到我的类中

但是为什么呢?

我明白@CucumberContextConfiguration的意思,它已经解释得很好了,但是为什么我现在在版本6中需要它,而版本4在没有它的情况下运行良好呢?我看不到任何功能被弃用并被此功能取代

任何帮助都将不胜感激:)

删除了上下文配置自动发现。作者得出结论,它隐藏了用户错误,删除它将提供更清晰的信息并降低复杂性。它还列出了用于应用上下文配置自动发现的场景

请注意,它是在之后引入的,正如您所提到的

    @CucumberContextConfiguration
    @SpringBootTest(classes = TestConfig.class)
    public class CucumberSpringConfiguration {}
    @CucumberContextConfiguration
    @ContextConfiguration( ... )
    public class CucumberSpringConfiguration {}