我正在尝试创建一个集成测试,需要运行PostgreSQL服务器。是否可以在maven构建中启动服务器,并在测试完成时停止它(我认为是在单独的进程中)?假设PostgreSQL服务器未安装在计算机上。
我正在尝试创建一个集成测试,需要运行PostgreSQL服务器。是否可以在maven构建中启动服务器,并在测试完成时停止它(我认为是在单独的进程中)?假设PostgreSQL服务器未安装在计算机上。
我开始编写一个用于此目的的插件:
https://github.com/adrianboimvaser/postgresql-maven-plugin
它处于早期阶段,缺乏文档,但大部分功能都可用。 我已经发布了0.1版本到Maven Central。
我还将PostgreSQL二进制发行版作为maven工件发布到所有平台。 你可以在插件的集成测试中找到使用模式。
干杯!
我认为通常的情况是有一个正在运行的集成测试数据库,并且在构建之间不关闭/重启它。
但如果你真的想要,你可以设置你的持续集成服务器来启动/停止数据库。
为了给这个问题带来一些新的视角:
你也可以将postgresql数据库作为docker实例启动。 Docker的插件生态系统似乎仍在变化中,因此您可能需要自己决定哪个适合。以下是一些链接,可以加速您的搜索:
你好像在尝试构建一个完整的持续集成环境。你应该考虑使用像Cruise Control或Bamboo这样的完整CI工具。
我以前是这样做的,设置一个专用的CI数据库,可以从CI服务器访问,然后有一系列的bash/python/其他脚本作为成功构建步骤运行,然后可以运行任何额外的集成任务。再加上类似于liquibase的东西,你可以清除CI数据库,并确保每次构建都是最新的模式。