ant - 如何自动化构建、部署和测试 Java Web 应用程序?

标签 ant jboss build-automation automated-tests

现在我有一个 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/

相关文章:

java - Ant 项目包含多个要构建的文件夹

java - JDK 1.6 和 servlet 容器

javascript - JS 分析工具,用于自动检查在 IE 中破坏的东西(如 const)

windows - 如何从 Windows 命令行构建 CD ISO 镜像文件?

java - 如何在 Eclipse 中将 .jar 标记为 "provided"

Ant Macrodef 属性使用

class - 在 ANT 中制作 JAR 时如何有条件地包含 list 选项

java.lang.ClassNotFoundException 第一次调用其余服务时

java - 遵循 arquillian-graphene 指南的问题

shell - su -c 的 ANT SSHEXEC 密码提示问题