现在我有一个web java项目,它通过将ear archive复制到服务器目录(全部使用Ant)自动构建并部署到JBoss.
我需要的是一种机制,不仅可以自动部署应用程序,还可以验证应用程序是否已成功部署并对其运行HttpUnit测试.
问题是如何自动监视部署过程以等待部署完成时以及仅在运行测试之后.所以我想在"一键"中构建,部署,运行测试(我使用Cruise Control).
关于解决问题的任何建议,我将不胜感激.
这里需要的是启动容器并从构建脚本部署应用程序,然后根据部署的应用程序运行测试.这是集成测试,端到端/功能测试,ui测试的典型需求.
问题是我们不能只是"发射并忘记"容器的启动并运行测试任务/目标.我们需要等待应用程序在运行测试之前部署,这需要一些时间.为了确保我们可以在事情准备就绪时运行测试,构建必须启动容器并以阻塞方式部署应用程序.
这究竟是什么货物是什么.Cargo是一个Java API,用于启动/停止容器和部署应用程序.它提供了上述逻辑,可以从Java,Ant或Maven中使用.
如果您正在使用Maven,那么构建生命周期已经包含了"集成测试"阶段的内容.此阶段通常用于...集成测试,并由"预集成测试"和"集成后测试"阶段包装.这是您插入货物启动/停止目标的地方.如果您使用Ant,则可以使用货物的蚂蚁任务.
Mavan Jetty插件配置指南中描述了基于maven的另一个选项.这个想法与上面的完全相同,只是你在"预集成测试"期间使用jetty插件而不是货物来启动jetty并在"集成后测试"期间停止它.