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

Java集成测试运行缓慢,因为服务器为每个类单独启动

封烈
2023-03-14

我们有Spring Boot应用程序,我们有使用JUnit 4和RestAsure Framework的集成测试。

我们的项目中有很多与测试相关的类。

我们的集成测试需要很长时间才能在本地运行,因为每个类都会引导并引入服务器-服务器在类中运行测试,然后终止服务器。

每个班级都会发生这种情况。

每次启动服务器并杀死服务器都需要花费大量时间 - 这使得一起运行所有测试非常慢。

我希望服务器只在本地启动一次,并对其运行所有测试。

所以基本上我的用例是当我试图同时运行所有测试时。

提前感谢

致敬

共有1个答案

蒲昊
2023-03-14

集成测试通常很慢。但是,为了保持测试独立性,并不总是可以选择将测试准备和清洁转移到测试之外。

让测试并行运行怎么样?请参见Gradle。我认为这也可以在Maven中完成。

是的,这通常会引入一系列新的问题,比如确保同时运行的测试不会相互影响。通常使用的端口需要是测试专用的,通常提供0意味着:找到一个空闲端口。在测试期间,可以检索实际使用的端口。

这样,在保持测试独立性的同时,整体加速可能会更好。

 类似资料:
  • 我正在使用maven-jetty-plugin和maven-failsafe-plugin运行集成测试。以下是我的配置: 当我运行mvn clean install时,jetty服务器启动,之后什么也没有发生(它会卡住)。我的日志中的最后一行是:[INFO]启动了Jetty服务器。当我按下control-c时,它会显示如下内容: 为什么会卡住?当我按下control-c时,它为什么执行其余的步骤?

  • 我使用PyCharm来运行一个相当大的测试套件(1800个快速测试)。最近修改了一个测试,我意识到我的测试不会出错。当我单独运行这些测试时,确实会中断,但是如果我运行整个测试套件,它们总是会通过。这是由于一些以前的同事对类的这种不正确的嘲笑: 我现在需要检查整个测试套件中模拟的使用情况,但是我想单独运行每个测试,看看哪些测试没有通过(我将这些测试标记为高优先级)。我怎么能从控制台或Py魅力中做到这

  • 这与我自己的Runner和Filter类以及注释一起,意味着我可以在一个单独的类中运行一个单独的测试,如下所示: 这在Jenkins中也是非常好的,我也能够并行运行测试。我遇到的问题是,每个类的报告在每个方法运行后都会被覆盖。 例如,上面的命令将生成一个文件test-classwithtests.xml,其中包含关于TestMethod的结果和输出的信息。但是,如果我跑

  • 问题内容: 我有一个包含200多个测试类别的近500个单独测试的项目。这些测试中有一些在完成测试后并不能很好地关闭它们自己的状态,在Eclipse中这会导致某些测试失败。通过Ant从命令行运行测试套件时,所有测试均通过。 我可以在Eclipse中以某种方式启用“测试隔离”吗?我不在乎是否需要更长的时间。 从长远来看,我会清理行为异常的测试,但短期而言,我想使测试正常工作。 问题答案: 如果在Ecl

  • 我有两个Spring Boot应用程序,它们最终调用外部REST API。其结构大致如下:

  • 我正在开发一个Java的REST API,它同时命中多个endpoint,所有这些服务都并行运行。我希望我的应用程序为每个终端使用单独的Spark会话。 问题陈述: 每当我使用或,它会关闭sparkContext本身,因为并行运行的其他服务会失败,并且每当我再次点击该服务时,sparkContext都无法重新启动。 我尝试了以下方法来解决问题: 使用SparkSession singleton对象