【发布时间】:2016-04-23 20:43:21
【问题描述】:
目前在我们的项目中,我们正在使用 Spring Integration 来集成许多服务和一些协议相关的端点。
该项目是一个多 Spring Boot 应用程序,生产环境中会部署多个可执行 jar。
问题是:
-
如何运行需要跨其中一些应用程序运行的端到端测试,我必须手动运行一个一个?在非 Spring-Boot 应用之前,我可以使用 Maven tomcat7 插件来完成这项工作(将战争部署到嵌入式 tomcat 并在 pre-integration-test 阶段运行),现在如何开始在我运行测试之前启动所有相关的应用程序。假设我现在不使用 Docker/Vagrant。
在 stackoverflow 上发现了类似的问题,End to end integration test for multiple spring boot applications under Maven
如何自动运行端到端测试?
在 Spring 集成测试中,有时我必须模拟一个 http 端点,所以我在测试包中写了一个简单的
Controller来归档这个目的,但我想在不同的端口上运行它,这使得它更像是一种外部资源。为此,如何在测试中同时在不同的端口上运行不同的@SpringBootApplicaiton类?
我正在使用最新的 Maven、Java 8、Spring Boot 1.3.1.RELEASE。
【问题讨论】:
-
第二个问题,我发现Spring提供了一个
MockRestServiceServer,可以mock目标远程REST API,在测试中实现这个目的。
标签: spring-boot spring-integration spring-test end-to-end