2012-09-26 66 views
6

通常我使用hsqldb進行一些集成測試,它工作正常。但是一些測試需要有一個postgresql實例。由於我們的生產服務器運行postgresql,因此無論如何對生產數據庫運行測試都是一個好主意。如何啓動一個postgresql實例進行集成測試

是否有Maven插件或類似的東西,可以輕鬆地安裝並啓動給定端口上的postgresql數據庫,並在所有測試運行後關閉它?

對於像mysql的mysql-je

回答

4

我什麼都不知道。但是你可能不想啓動和停止實際的PostgreSQL服務器;您希望始終運行服務器,並根據需要創建和銷燬數據庫。您可以create a database in SQL,也可以destroy it。如果設置了一個初始的數據庫是空的,而不是用來存儲任何數據,你可以有這樣一個工作流程:

  1. 連接到空數據庫
  2. 發出命令來創建一個新的數據庫
  3. 對新數據庫
  4. 發出命令進行測試,以刪除新的數據庫
+3

步驟2)應該是「從模板數據庫中創建一個新的數據庫。模板數據庫已經可以包含一些測試數據。最快的方法初始化g測試環境 –

+1

很可能是正確的,但不一定。我更喜歡將測試數據庫作爲版本控制源代碼的一部分,因爲它需要隨代碼一起更改(例如,當我添加一個新類時,我需要爲它添加一個新表)。這意味着從項目中的轉儲文件驅動初始化,而不是模板數據庫。 –

+0

我們在以前的項目中使用相當有效的混合方法是使用一個反映生產系統當前狀態的模板(實際上是服務器端轉儲,因爲這是Oracle),並捕獲項目中的SQL文件我們希望在下一個版本中進行更改。初始化數據庫包括加載模板/轉儲,然後應用更改。 –