【发布时间】:2021-09-21 12:55:25
【问题描述】:
我开始了一个项目,现在我的项目中有大约 7 个测试,使用 gradle test 执行整个测试套件已经花费了超过一分钟。
从附加输出(--info 标志)我可以看到,对于每个测试类和方法,整个 quarkus 应用程序以及 mongodb 实例等依赖项都会重新启动。
这与 quarkus 文档在测试指南页面上所说的完全相反:
到目前为止,在我们所有的示例中,我们只为所有测试启动一次 Quarkus。在运行第一个测试之前,Quarkus 将启动,然后所有测试将运行,最后 Quarkus 将关闭。这提供了非常快速的测试体验,但它有点受限,因为您无法测试不同的配置。
所有测试都用@QuarkusTest 注释,每个测试只测试一个端点。
我使用“纯”kotlin (1.5.21)、Quarkus 版本 2.2.2.Final 和 gradle 6.9。 已安装的功能:cdi、config-yaml、jacoco、kotlin、mongodb-client、mongodb-panache-kotlin、narayana-jta、rest-client、rest-client-jackson、resteasy、resteasy-jackson、smallrye-context-propagation、smallrye -health,smallrye-openapi,swagger-ui
这是正常行为吗?如果是的话,一个包含数百个测试的应用程序很容易需要大约 20 分钟或更长时间来运行整个测试套件。
我还没有尝试过 maven,所以我无法验证这不是与 gradle 相关的问题。
【问题讨论】:
-
我与 maven 有类似的设置,这不是我们在 2K 测试中的正常行为,并且依赖项仅启动一次,您是否有任何与 junit 相关的其他配置可能导致此问题?你能分享一个复制器吗?
-
你能打开一个问题让我们调查一下吗?
-
我将尝试设置一个项目来重现该问题,因为我无法共享原始代码。我会相应地更新问题。