2012-09-26 33 views
6

通常我使用hsqldb进行一些集成测试,它工作正常。但是一些测试需要有一个postgresql实例。由于我们的生产服务器运行postgresql,因此无论如何对生产数据库运行测试都是一个好主意。如何启动一个postgresql实例进行集成测试

是否有Maven插件或类似的东西,可以轻松地安装并启动给定端口上的postgresql数据库,并在所有测试运行后关闭它?

对于像mysql的mysql-je

回答

4

我什么都不知道。但是你可能不想启动和停止实际的PostgreSQL服务器;您希望始终运行服务器,并根据需要创建和销毁数据库。您可以create a database in SQL,也可以destroy it。如果设置了一个初始的数据库是空的,而不是用来存储任何数据,你可以有这样一个工作流程:

  1. 连接到空数据库
  2. 发出命令来创建一个新的数据库
  3. 对新数据库
  4. 发出命令进行测试,以删除新的数据库
+3

步骤2)应该是“从模板数据库中创建一个新的数据库。模板数据库已经可以包含一些测试数据。最快的方法初始化g测试环境 –

+1

很可能是正确的,但不一定。我更喜欢将测试数据库作为版本控制源代码的一部分,因为它需要随代码一起更改(例如,当我添加一个新类时,我需要为它添加一个新表)。这意味着从项目中的转储文件驱动初始化,而不是模板数据库。 –

+0

我们在以前的项目中使用相当有效的混合方法是使用一个反映生产系统当前状态的模板(实际上是服务器端转储,因为这是Oracle),并捕获项目中的SQL文件我们希望在下一个版本中进行更改。初始化数据库包括加载模板/转储,然后应用更改。 –