【发布时间】:2011-12-05 14:23:39
【问题描述】:
我正在从头开始建立一家公司(Tomcat+Spring Rest+Java),所以我们可以奢侈地做一些正确的事情(或者在列表中不要重复我们过去的错误),这是我们想要的目标之一实现的是自动构建、测试(单元、集成)和部署的能力。
我们的平台是由一个静态 HTML/JS 接口站点构建的,该站点由 NGiNX 和一些 API 服务器(不同的应用程序)提供服务,其中一些是公开的,其中一些只能通过公开的 API 应用程序从农场内部访问。
我选择了 TeamCity 作为 CI 服务器,因为我对它有点熟悉,并且到目前为止我对 Jetbrain 的所有产品都有很好的体验。
到目前为止,我已经定义了两个构建配置
开发健全性:从 git 签出,运行 DB 脚本以准备数据库,执行全新安装的 maven 目标(因此我们的 testng 套件正在执行),执行代码覆盖率和静态代码分析 此配置正在执行,非常棒。
集成:从 git 签出,运行 DB 脚本以准备 Database,执行全新安装的 maven 目标(因此正在执行我们的 testng 套件)
现在我已经到了有问题的部分,在我们的集成测试开始之前,我们的配置需要将几个 .war 文件部署到不同的机器上,而且我想以这样一种方式构建它,以便我能够添加第三个配置将在集成通过后部署到实时生产,因此它与第二个配置基本相同,但添加了一些功能,例如关闭应用程序并在优雅部署后将其重新上线,我已经看到了几种方法这该怎么做 来自 maven cargo、shell 脚本、fabric 等......
根据你过去的经验,有没有推荐的方法来处理这幅画? 我也不清楚运行涉及要部署的多个应用程序的集成测试的最佳方法是什么,我已经看到了许多嵌入式码头等示例。但这仅适用于一个应用程序或当您需要时非常简单的配置在您开始测试之前要部署 3-4 个应用程序,最好的方法是什么?添加另一个专门用于集成测试的项目,并在部署完成后使用特定配置文件执行另一个 maven 目标?
顺便说一句 - 部署到 AWS
谢谢各位。
【问题讨论】:
标签: continuous-integration amazon-web-services integration-testing