【问题标题】:Integration testing two grails web applications at once?一次集成测试两个 Grails Web 应用程序?
【发布时间】:2011-05-03 15:04:05
【问题描述】:
我有两个 grails 应用程序,A 和 B。
A 对B 进行显式 REST 调用,我想要一种自动化的方式来了解它的工作原理。在传统的 grails 集成测试模型中,一次只提取一个实例。我使用jenkins 作为我的构建服务器,但似乎我需要在本地部署两个系统并运行测试,我不确定 jenkins 是否支持。
使用B 对A 进行全面集成功能测试的最佳方法是什么?
【问题讨论】:
标签:
testing
grails
hudson
jenkins
functional-testing
【解决方案1】:
在成功构建后使用 jenkins 将您的应用部署到容器中。并有一些环境属性或配置在应用 A 中设置应用 B 的 url。
【解决方案2】:
这不是 grails 甚至 Jenkins 独有的,但您可以这样做。
设置一个功能测试服务器,您可以在其中部署您的应用程序。创建一项 Jenkins 作业以轮询项目 A 以获取 SCM 更改并部署到服务器 A,并创建一项作业以轮询项目 B 以获取 SCM 更改并部署到服务器 B。
创建一个下游构建,C,它针对组合系统运行任何功能测试。请注意,您可能不想在此处引导任一数据库,因此不要使用集成测试阶段。在这里您可以使用硒之类的东西。确保在下游构建中阻止上游构建 A 和 B,并在所有上游构建中阻止 C。
这样,在测试运行过程中不会重新部署任何服务器。
至于集成测试,将B 想象成任何其他 Web 服务,如数据库或 LDAP 服务器或其他任何东西。如果您想要一个完整的集成测试,您只需为您的测试运行设置一个服务器并针对它运行,对吗?照着做。使用您的 B 构建或其他构建,创建一个明确了解 B 服务器的集成测试作业。