PostgreSQL není server pro vložení do paměti. Nelze jej pouze načíst jako knihovnu a spustit.
Budete potřebovat nějaký kontrolní kód testovacího svazku, abyste:
-
initdb
dočasný datový adresář -
Upravte
postgresql.conf
podle potřeby připojením řádků nebo povoleníminclude_dir
a pouštění souborů do něj. Pokud potřebujete pouze triviální konfiguraci, možná budete moci tento krok přeskočit; věci jakoport
lze nastavit pomocí proměnných prostředí a mnoho dalších lze nastavit pomocí-c
příznaků k příkazu spuštění serveru. -
vygenerovat náhodné číslo portu k použití
-
Spusťte server - spusťte
postgres -D the_datadir
novou instanci serveru pomocí JavaProcess
řízení. Vlastní konfigurační hodnoty můžete předat pomocí-c
a může také nastavit proměnné prostředí pro řízení chování. -
Připojte se přes JDBC a
CREATE DATABASE
poté spusťte testovací nastavení -
Spusťte své testy
-
Zastavte server ukončením procesu, který jste spustili.
-
Smažte datový adresář
Budete chtít provést správu procesů ve třídě s vhodným zpracováním dočasného adresáře, vyčištěním při nečistém ukončení (zabití serveru Pg a smazání datadir při výjimce) atd.
Budu překvapen, když nenajdete konzervovaný kód testovacího postroje, který byste si k tomu mohli půjčit. Zajímalo by mě, jestli bychom měli přidat nějaké do PgJDBC a sbalit to do ovladače? Pokud najdete něco dobrého nebo něco dobrého napíšete, napište mi prosím ping komentářem k této odpovědi a já ji zvážím pro zahrnutí jako užitečnou třídu v PgJDBC.
To znamená, že je mnohem běžnější spouštět testy v nově vytvořené testovací databázi v existující instanci PostgreSQL, která již běží na vašem serveru. Stačí nakonfigurovat svou testovací sadu pomocí uživatelského jména/hesla/hostitele/portu/databáze PostgreSQL (nebo ji nechat připojit k postgres
databáze a CREATE
a DROP
databáze). Koneckonců, nějaká konfigurace bude vždy vyžadována:instalace nebo kompilace PostgreSQL, ujistěte se, že binární soubory jsou na PATH
, atd.
Další možností je použití Amazon RDS:Použijte AWS RDS API ke spuštění nové instance PostgreSQL a použijte ji pro své testy. To pravděpodobně není praktické, pokud vaše testy neběží po dlouhou dobu kvůli době nastavení a minimální době běhu, ale je to další možnost, stejně jako podobná služba v Heroku.