现在我有一个 web java 项目,它自动构建并部署到 JBoss,只需将 ear 存档复制到服务器目录(全部使用 Ant)。
我需要的是一种机制,不仅可以自动部署应用程序,还可以验证应用程序是否成功部署并在其上运行 HttpUnit 测试。
问题是如何自动监控部署过程以等待部署完成的那一刻,并且只有在运行测试之后。因此,我想“一键”构建、部署、运行测试(我为此使用 Cruise Control)。
对于解决问题的任何建议,我将不胜感激。
最佳答案
这里需要启动一个容器并从构建脚本部署一个应用程序,然后根据部署的应用程序运行测试。这是集成测试、端到端/功能测试、ui 测试的典型需求。
问题是我们不能只是“一劳永逸”启动容器并运行测试任务/目标。我们需要等待应用程序部署完成才能运行测试,这需要一些时间。为了确保我们可以在一切准备就绪时运行测试,构建必须启动容器并以阻塞方式部署应用程序。
这正是Cargo是关于。 Cargo 是一个用于启动/停止容器和部署应用程序的 Java API。它提供了上述逻辑,可以从 Java、Ant 或 Maven 中使用。
如果您使用的是 Maven,则构建生命周期已经为您提供了“集成测试”阶段的内容。此阶段通常用于...集成测试,并由“预集成测试”和“后集成测试”阶段包装。这是您插入 cargo 开始/停止目标的地方。如果你使用 Ant,你可以使用 cargo 的 ant 任务。
Mavan Jetty Plugin Configuration Guide 中描述了另一个基于 maven 的选项。 .这个想法和上面的完全一样,只是你在“预集成测试”期间使用码头插件而不是 cargo 来启动码头,并在“集成后测试”期间停止它。
关于ant - 如何自动化构建、部署和测试 Java Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/633778/