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

是否可以同时在多个Spring启动应用程序上运行集成测试?

程俊誉
2023-03-14

我有一个gradle项目,有3个使用spring boot的模块。这3个spring boot应用程序并行运行并相互交互。

例如,MODULE1将数据保存在MODULE2中,而MODULE3通过Rest API从MODULE2检索数据。

我想对这3个spring boot应用程序之间的交互进行集成测试(即,让它们分别在不同的端口上运行)。有可能吗?怎样

我知道我们可以为单个spring boot应用程序实现这一点。(如此处所述)

共有1个答案

柳胜
2023-03-14

你有没有考虑过使用Docker?和你一样,我在尝试这样做时遇到了问题,我目前的解决方案是使用docker-compose为每个应用程序建立一个容器。我在一个简单的容器中运行每个Spring启动应用程序(示例):

FROM openjdk:8-jdk-alpine

VOLUME /tmp
ADD target/module1.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar

然后我使用docker-compose将它们放在一起:

version: '3'
services:
  module1:
    build: ./path/to/module1/Dockerfile
    ports:
     - "8080:8080"
    links:
     - module2
  module2:
    build: ./path/to/module2/Dockerfile
    ports:
     - "8081:8081"

请注意,我还没有测试过任何配置,因为我现在不在开发人员的机器上,我已经将配置简化为我认为最简单的配置。

 类似资料:
  • 问题内容: JVM是否可以同时运行多个程序?如果是这样,怎么办?如果没有,为什么? 要运行程序,我们只需 但是我们可以使用同一个JVM实例来运行另一个程序吗? 问题答案: 答案取决于您对“程序”的定义。具有方法并以其开头的Java程序通常无法在同一JVM中运行,因为没有内置的资源或名称空间分隔。例如,如果两个程序使用同一库的冲突版本怎么办? 我们还提供了旨在共享JVM的应用程序,例如企业应用程序。

  • 问题内容: 如果可能,您将如何配置每个守护程序-图形位置,图像位置等? 问题答案: 是的,即使没有Docker Machine,也可以在单个主机上运行两个Docker守护进程。从Docker 18.09.0-ce开始,如果两个守护程序使用默认值,则以下标志可能会导致冲突: 的默认值为,如果不使用默认值,则必须手动创建和配置网桥(Docker不会为您创建/管理它)。下面有更多详细信息。 是存储容器状

  • 问题内容: 我正在尝试构建一个android应用程序,此应用程序的主要功能之一是使其能够在手机启动时自动启动活动,我在手机上看到一些应用程序已经执行了此操作,因此任何帮助都将非常有用。我可以至少通过sdk对此进行更好的研究,谢谢! 问题答案: 您需要像这样实现BroadCastreceiver: 在清单中添加以下内容: 添加权限:

  • 我有一个多Maven模块Spring Boot项目,具有以下结构: webservices和backend都是单独的Spring Boot应用程序(它们生成一个jar文件,我用它来启动它们),它们依赖于commons模块。因此,我将commons作为一个依赖项包含在webservices和后端的pom中。xml。 我对启动我的应用程序没有什么疑问。 如何在单个JVM中启动后端和webservice

  • 不是一个真正重要的问题,但只是好奇。您可以在运行时更改应用程序图标吗?例如,有一个按钮,当您按下该按钮时,您会在flutter中获得不同的应用程序图标(假设应用程序图标已经“设置”)。Android和iOS。 非常感谢任何意见。谢谢

  • 尝试完成Spring Boot教程:https://Spring.io/guides/gs/spring-boot/#initial 以下是我的课程: 和pom.xml: 当我尝试使用以下命令运行它时:“mvn package&&java-jar target/gs-spring-boot-0.1.0.jar”,我得到的是: “-dmaven.home=C:\program files\jetbr