PostgreSQL не е сървър за вграждане в паметта. Не може просто да се зареди като библиотека и да се стартира.
Ще ви е необходим контролен код за тестови снопове, за да:
-
initdb
временна директория с данни -
Редактирайте
postgresql.conf
според изискванията чрез добавяне на редове или чрез активиране наinclude_dir
и пускане на файлове в него. Ако имате нужда само от тривиална конфигурация, може да сте в състояние да пропуснете тази стъпка; неща катоport
могат да бъдат зададени чрез променливи на средата, а много други могат да бъдат зададени с-c
флагове към командата за стартиране на сървъра. -
генерира произволен номер на порт за използване
-
Стартирайте сървъра - стартирайте
postgres -D the_datadir
нов сървърен екземпляр, използващProcess
на Java управление. Можете да предавате потребителски конфигурационни стойности с-c
и може също така да задава променливи на средата за контрол на поведението. -
Свържете се през JDBC и
CREATE DATABASE
след това стартирайте вашата тестова настройка -
Изпълнете вашите тестове
-
Спрете сървъра, като убиете процеса, който сте стартирали.
-
Изтрийте datadir
Ще искате да извършите управлението на процеса в клас с подходящо управление на временна директория, почистване при нечист изход (убиване на Pg сървъра и изтриване на datadir при изключение) и т.н.
Ще се изненадам, ако не можете да намерите готов тестов код, който да заемете за това. Чудя се дали трябва да добавим малко към PgJDBC и да го включим в драйвера? Ако намерите нещо добро или напишете нещо добро, моля, изпратете ми ping, като коментирате този отговор и ще го разгледам за включване като полезен клас в PgJDBC.
Въпреки това е много по-често вместо това да изпълнявате вашите тестове в новосъздадена тестова база данни в съществуващ екземпляр на PostgreSQL, който вече работи на вашия сървър. Просто конфигурирате тестовия си пакет с PostgreSQL потребителско име/парола/хост/порт/база данни (или го оставяте да се свърже с postgres
база данни и CREATE
и DROP
базата данни). В края на краищата винаги ще се изисква някаква конфигурация:инсталиране или компилиране на PostgreSQL, като се уверите, че двоичните файлове са на PATH
и т.н.
Друг вариант е да използвате Amazon RDS:Използвайте AWS RDS API, за да стартирате нов екземпляр на PostgreSQL и да го използвате за вашите тестове. Това вероятно не е практично, освен ако вашите тестове не се изпълняват дълго време поради времето за настройка и минималното време за изпълнение, но това е друга опция, както и подобна услуга в Heroku.