Cucumber 从版本4升级到版本6时是否需要额外的上下文配置?
我正在使用cucumber jvm在Kotlin中执行一些功能测试 我有标准的空跑步者课程: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注释定义的。
@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 {}