【发布时间】:2012-06-21 16:08:51
【问题描述】:
我在嵌入式服务器上运行 maven war 项目以进行自己的集成测试没有问题,但现在我需要运行多个 war 并从不同的项目进行测试。
我想设置以下场景...
我的本地工作区中有两个 Maven 战争项目,分别称为 War1 和 War2。我想要第三个 Maven 项目 WarIntegration,它只包含集成测试并执行以下操作:
- 包战争1
- 包战争2
- 启动嵌入式服务器
- 将两个战争部署到同一个嵌入式服务器
- 运行包含在 WarIntegration 中的集成测试(将对 War1 和 War2 进行 http 调用)
- 停止嵌入式服务器
这可能吗?什么插件设置可以实现这一点? WarIntergration 应该是一个什么样的项目(打包)? War1 和 War2 应该是 WarIntegration 中的模块还是依赖项?是否可以将所有配置添加到 WarIntegration 项目中,还是必须将其分布在各个项目中?
这类似于这个问题,除了我们必须使用由项目启动和停止的嵌入式服务器(可能在我们运行验证时)并且我们需要一个单独的项目来进行集成测试: I have a multi-module Maven 2 POM that has two WARs, how can I configure it to deploy both wars prior to running tests?
【问题讨论】:
-
您如何启动/停止您的嵌入式服务器?
-
war1和war1的打包应该由项目自己完成。我建议只定义对另外两个项目的依赖。
-
@Roy Truelove 我想将启动和部署附加到预集成阶段,将关闭附加到集成后阶段。
-
@khmarbaise 我可以使用什么插件/配置将这两个战争部署到嵌入式服务器? WarIntegration 应该使用哪种封装之王?
-
这张幻灯片slideshare.net/wakaleo/… 演讲提到了一些可能有用的东西,从幻灯片 29 开始。看起来 Cargo 是一个 maven 插件,可以配置多个可部署的战争依赖项。您可能可以使用 cargo 启动一个 tomcat 实例,部署 WAR 依赖项,然后运行验收测试。
标签: maven integration-testing maven-failsafe-plugin embedded-server