PostgreSQL no es un servidor integrado en memoria. No puede simplemente cargarse como una biblioteca y ejecutarse.
Necesitará algún código de control de arnés de prueba para:
-
initdb
un directorio de datos temporal -
Editar
postgresql.conf
según sea necesario agregando líneas o habilitando uninclude_dir
y colocar archivos en él. Si solo necesita una configuración trivial, puede omitir este paso; cosas como elport
se puede configurar a través de variables de entorno, y muchos otros se pueden configurar con-c
banderas al comando de inicio del servidor. -
generar un número de puerto aleatorio para usar
-
Inicie el servidor:ejecute
postgres -D the_datadir
una nueva instancia de servidor usando elProcess
de Java administración. Puede pasar valores de configuración personalizados con-c
y también puede establecer variables de entorno para controlar el comportamiento. -
Conéctese a través de JDBC y
CREATE DATABASE
luego ejecute su configuración de prueba -
Ejecute sus pruebas
-
Detenga el servidor eliminando el proceso que inició.
-
Eliminar el directorio de datos
Querrá hacer la gestión del proceso en una clase con el manejo adecuado del directorio temporal, la limpieza en la salida sucia (matar el servidor Pg y eliminar el directorio de datos en caso de excepción), etc.
Me sorprendería si no puede encontrar un código de arnés de prueba enlatado para tomar prestado para esto. Me pregunto si deberíamos agregar algo a PgJDBC y empaquetarlo en el controlador. Si encuentra algo bueno o escribe algo bueno, envíeme un ping comentando esta respuesta y lo consideraré para incluirlo como una clase de utilidad en PgJDBC.
Dicho esto, es mucho más común ejecutar sus pruebas en una base de datos de prueba recién creada en una instancia de PostgreSQL existente que ya se ejecuta en su servidor. Simplemente configure su conjunto de pruebas con un nombre de usuario/contraseña/host/puerto/base de datos de PostgreSQL (o deje que se conecte a postgres
base de datos y CREATE
y DROP
la base de datos). Después de todo, siempre será necesaria alguna configuración:instalar o compilar PostgreSQL, asegurándose de que los archivos binarios estén en la PATH
, etc.
Otra opción es usar Amazon RDS:use las API de AWS RDS para lanzar una nueva instancia de PostgreSQL y usarla para sus pruebas. Esto probablemente no sea práctico a menos que sus pruebas se ejecuten durante mucho tiempo debido al tiempo de configuración y el tiempo de ejecución mínimo, pero es otra opción, al igual que el servicio similar en Heroku.