当前位置: 首页 > 知识库问答 >
问题:

@QuarkusTest单元测试需要很长时间

朱欣荣
2023-03-14

我启动了一个项目,现在项目中有大约7个测试,使用gradletest执行整个测试套件已经花费了一分钟多的时间。

从附加输出(--info标志)中,我可以看到,对于每个测试类和方法,整个quarkus应用程序以及mongodb实例等依赖项都会重新启动。

这与quarkus文档在测试指南页面上的内容完全相反:

到目前为止,在我们的所有示例中,我们只为所有测试启动Quarkus一次。在运行第一个测试之前,Quarkus将启动,然后所有测试将运行,最后Quarkus将关闭。这有助于获得非常快速的测试体验,但它有点有限,因为您无法测试不同的配置。

所有测试都用@QuarkusTest注释,每个测试只测试一个endpoint。

我使用纯净的kotlin(1.5.21),QUUKUS版本2.2.2。最终和gradle 6.9。已安装的功能:cdi,config-yaml,Jacoco,kotlin,mongob-Client,mongob-panache-kotlin,narayana-jta,rest-Client,rest-client-jackson,resteasy-jackson,resteasy-jackson,Smallrye-上下文传播,Smallrye-Health,Smallrye-openapi,swagger-ui

这是正常的行为吗?如果是,一个有数百个测试的应用程序运行整个测试套件可能需要大约20分钟或更长时间。

我还没有试用maven,所以我无法验证它是否与gradle相关。

共有1个答案

姬裕
2023-03-14

在尝试用新项目复制它时,我想我发现了代码的问题:我在测试中还使用了@QuarkusterSourcesrestrictToAnnotatedClass=true。这意味着配置

我稍微重组了我的测试,所以它们使用“全局”测试资源(在我的例子中是一个WireMockServer)。现在夸克斯在测试前只启动一次,gradle测试任务的总运行时间是可以接受的。

 类似资料:
  • 问题内容: 现在一段时间以来,我的单元测试花费的时间比预期的长。我已经尝试调试了几次,但是没有成功,因为延迟是在我的测试甚至开始运行之前。这影响了我在远程测试驱动开发附近做任何事情的能力(也许我的期望太高了),所以我想看看我是否可以一劳永逸地解决这个问题。 运行测试时,测试的开始与实际开始之间会有70到80秒的延迟。例如,如果我针对一个小模块运行测试(使用),我得到 1m:21中的大约1m18位于

  • 没有一个参数帮助我们在较短的时间内解决查询。

  • 我使用javamail通过IMAP协议从exchage帐户读取邮件。这些邮件是纯格式的,内容是XML。 几乎所有这些邮件的大小都很短(通常小于100Kb)。然而,有时我不得不处理大型邮件(大约10Mb-15Mb)。例如,昨天我收到一封13Mb大小的电子邮件。仅仅读它就花了50多分钟。这正常吗?有没有办法提高它的性能?代码是: 花费如此长时间的方法是。我做错了什么?有什么提示吗? 非常感谢,我的英语

  • 给出结果需要20多秒,而在mongo控制台中同样的查询需要不到一秒。 为什么会出现这种情况,如何减少速度差距?

  • 我有以下PHP代码在Laravel正在执行一个MySql查询: 执行此查询需要很长时间。 我对所排序的列以及其他查询的许多列都有索引。 我该怎么办? 更新: 执行的查询: 结果: