gpt4 book ai didi

junit - Jupiter Extensions 可以/应该用于自定义 JUnit5 引擎吗?

转载 作者:行者123 更新时间:2023-12-05 04:44:59 26 4
gpt4 key购买 nike

请问自定义 JUnit5 TestEngine 中扩展支持的建议是什么?

由于扩展来自 junit-jupiter-api(而不是 junit 平台),尝试在自定义引擎中支持它们是不是一个坏主意? (有什么简单的方法可以做到这一点吗?)

我正在为 JBehave 测试编写一个自定义引擎,很容易为 Jupiter 重用一些扩展,如 TestcontainersExtension,但另一方面我想知道我正在考虑的是不是'出于某种原因这不是一个坏主意......对此有什么建议吗?或者是否有一些简单的方法可以为自定义引擎提供扩展支持? (理想情况下无需从 jupiter 引擎重新实现相同的代码)

最佳答案

在最初构思引擎 SPI 和 Jupiter 扩展时,我们已经在那里,我们没有考虑将扩展概念导出到其他引擎。原因是 Jupiter 的扩展点与测试生命周期的细节紧密耦合。看看许多不同的扩展点,它们只有在实例创建、设置、拆除、禁用、过滤、命名、存储和上下文像在 Jupiter 中一样工作时才有意义。

JBehave 是否能够或愿意支持所有这些细粒度的细微差别和微妙之处?否则,您将遇到一些 Jupiter 扩展将按预期与 JBehave 一起工作的问题,有些略有不同,而另一些则完全不同。另一个明显的缺点是与您拥有的完整 Jupiter API 的耦合。这就是为什么我决定让 jqwik.net 带有自己的扩展 API。

也就是说,有一些对许多引擎有意义的扩展注释,例如 Disabled,并且 IMO 是否应该从 Jupiter API 移出到一个公共(public)模块中。另一个想法是为某些类型的 Jupiter 扩展提供某种适配器,类似于 Jupiter 如何自动使用 JUnit 4 规则的子集。

关于junit - Jupiter Extensions 可以/应该用于自定义 JUnit5 引擎吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69226079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com