PostgreSQL bukan server yang dapat disematkan dalam memori. Itu tidak bisa hanya dimuat sebagai perpustakaan dan dijalankan.
Anda memerlukan beberapa kode kontrol harness uji untuk:
-
initdb
direktori data sementara -
Edit
postgresql.conf
seperti yang diperlukan dengan menambahkan baris, atau dengan mengaktifkaninclude_dir
dan menjatuhkan file di dalamnya. Jika Anda hanya membutuhkan konfigurasi sepele, Anda mungkin dapat melewati langkah ini; hal-hal sepertiport
dapat diatur melalui variabel lingkungan, dan banyak lainnya dapat diatur dengan-c
menandai perintah startup server. -
menghasilkan nomor port acak untuk digunakan
-
Luncurkan server - jalankan
postgres -D the_datadir
contoh server baru menggunakanProcess
Java pengelolaan. Anda dapat meneruskan nilai konfigurasi khusus dengan-c
dan juga dapat mengatur variabel lingkungan untuk mengontrol perilaku. -
Hubungkan melalui JDBC dan
CREATE DATABASE
lalu jalankan pengaturan pengujian Anda -
Jalankan pengujian Anda
-
Hentikan server dengan mematikan proses yang Anda luncurkan.
-
Hapus direktori data
Anda akan ingin melakukan manajemen proses di kelas dengan penanganan direktori temp yang sesuai, pembersihan saat keluar yang tidak bersih (matikan server Pg dan hapus datadir pada pengecualian), dll.
Saya akan terkejut jika Anda tidak dapat menemukan kode harness tes kalengan untuk dipinjam untuk ini. Saya ingin tahu apakah kita harus menambahkan beberapa ke PgJDBC dan menggabungkannya ke dalam driver? Jika Anda menemukan sesuatu yang bagus, atau menulis sesuatu yang bagus, silakan ping saya dengan mengomentari jawaban ini dan saya akan mempertimbangkannya untuk dimasukkan sebagai kelas utilitas di PgJDBC.
Karena itu, jauh lebih umum untuk menjalankan pengujian Anda di database pengujian yang baru dibuat dalam instance PostgreSQL yang sudah ada yang sudah berjalan di server Anda. Anda cukup mengonfigurasi rangkaian pengujian Anda dengan nama pengguna/kata sandi PostgreSQL/Host/port/database (atau biarkan terhubung ke postgres
database dan CREATE
dan DROP
data). Bagaimanapun, beberapa konfigurasi selalu diperlukan:menginstal atau mengkompilasi PostgreSQL, memastikan binari berada di PATH
, dll.
Opsi lainnya adalah menggunakan Amazon RDS:Gunakan API AWS RDS untuk meluncurkan instans PostgreSQL baru dan menggunakannya untuk pengujian Anda. Ini mungkin tidak praktis kecuali pengujian Anda berjalan untuk waktu yang lama karena waktu penyiapan dan runtime minimum, tetapi ini adalah opsi lain, seperti layanan serupa di Heroku.