Quarkus基于属性的测试支持/关于Quarkus测试引擎的Tech doku



我们有一个Quarkus项目正在生产中。它运行良好,但由于数据结构和业务逻辑的高度复杂性,测试是一场噩梦。我们希望在项目中添加基于属性的测试。我到目前为止还没有找到一个支持Quarkus的Java PBT测试库。

我试过*jqwik *和junit-quickcheck。它们都在技术上运行,但由于不同的测试引擎,它们不能访问我们的项目代码,即访问注入的bean(在测试运行期间它们保持NULL)。参见:在Quarkus测试中激活jqwik时,Inject返回NULL

我已经尝试为jqwik编写一个自己的quarkus扩展。我与jqwik部分相处,但由于缺乏对夸克测试引擎的理解而失败。

我的问题:

  1. 在Quarkus中是否有基于属性的测试支持?
  2. 如果没有,谁能提供关于夸克测试引擎的深入指南?编写自己的扩展将需要一段时间,但是(考虑到参考PBT库所有者批准)我可能会使结果扩展公开。

你可能想看看quicktheories: https://github.com/quicktheories/QuickTheories.

它与jqwik和junit-quickcheck的区别在于它独立于任何测试框架或测试引擎。明显的优点是,你可以将它添加到任何你已经使用的基于示例的测试Quarkus应用程序。缺点是,你没有额外的生命周期支持,比如为每次尝试一个属性实例化由DI提供的对象。此外,快速理论似乎是孤立的。因此,在Quarkus内部开始使用PBT可能是一个短期解决方案,但您可能还希望继续开发对Quarkus测试引擎的集成支持。

最新更新