java - 用于测试的最小 postgres 实例

标签 java postgresql testing jdbc

我有一些代码通过 JDBC 与 postgres 数据库交互。但是,出于测试目的,我只想快速创建一个新数据库并连接到它,而无需修改我的全局 postgres 安装、管理用户等。人们通常如何进行这种测试?

最佳答案

我会找到 initdb 可执行文件并使用它来创建一个当前用户可写的新数据库实例临时存储。因为它是一个测试实例,所以使用类似 initdb --auth=trust --username=postgres -D/path/to/temp/datadir 这样新的数据库被设置为接受连接而不需要密码.

使用pg_ctl启动服务器,指定端口覆盖生成的postgresql.conf中的默认设置,避免冲突。

连接到新的数据库集群并做任何需要的工作。在将控制权移交给测试代码之前,您需要首先以用户 postgres 的身份连接并运行任何必需的 CREATE USERCREATE DATABASE 命令.

最后用pg_ctl停止,最后删除data目录。

您只需要 PATH 上的 initdbpg_ctl,以及管理服务器的帮助类。

参见:

关于java - 用于测试的最小 postgres 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771968/

相关文章:

PostgreSQL\d 命令 : Any way to "select" only one column?

ruby-on-rails - 如何按日期计数获取此 postgres 组包括带 0 的天数

java - 排除 PITest 中的某些代码行

java - 如何将文件夹(不是逐个文件)从服务器复制到 Android 设备

java - 我可以在谷歌应用引擎中使用 org.apache.http.client.HttpClient 吗?

java - 使用 URLFetchService/URL - Google appengine for java

linux - 如何解决 EC2 上的 JIRA 安装问题?

testing - 使用 cfg 属性有条件地计算间接函数调用的最佳方法是什么?

ruby-on-rails - 使用 rspec 进行测试时出现 nilClass 错误

maven - [Cucumber][JVM][Maven]测试不会通过 Maven 从命令行运行