我想創建一個集成測試,它需要一個正在運行的PostgreSQL服務器。是否有可能在Maven構建中啓動服務器,並在測試完成時停止它(在我認爲的單獨過程中)?假定PostgreSQL服務器沒有安裝在機器上。我可以在Maven構建中使用PostgreSQL嗎?
回答
我開始寫一個插件用於此目的:
https://github.com/adrianboimvaser/postgresql-maven-plugin
這是在一個非常早期的階段,缺乏文檔,但大多工作。 我已經向Maven Central發佈了0.1版本。
我還將所有平臺的PostgreSQL二進制發行版發佈爲maven工件。 您可以在插件的集成測試中找到使用模式。
乾杯!
輝煌,這正是我還在尋找什麼! – yegor256 2013-09-01 13:52:51
不是我所知。但是,您可以使用啓動服務器的run a remote command。
我認爲通常的情況是有一個正在運行的集成測試數據庫,而不是關閉/重新構建之間。
但是,如果你真的想要你可以設置你的持續集成服務器啓動/停止數據庫。
是的,我真的很想。我該如何從Maven做到這一點?有沒有PostreSQL的插件?我需要安裝它,啓動,運行測試,停止,卸載。 – yegor256 2011-06-15 23:02:31
您試圖將maven推向遠遠超出預期的信封範圍,因此在它工作之前,您會受到相當程度的傷害。
幸運的是,postgresql可以下載爲zip壓縮文件。
如上所述,maven可以使用ant任務來擴展其範圍。 Ant有大量的任務來解壓縮文件,並運行命令。該序列將如下所示:在一個公知的目錄
- 解壓postgresql-xxx.zip - > INSTALL_DIR
- 創建一個數據目錄 - > DATA_DIR
- /bin中/ INIT-分貝-D
- /斌/ Postgres的-D
- /斌/ CREATE_DB -EUNICODE測試
這應該給你一個測試數據庫運行的服務器。
其他問題:創建一個用戶,安全性(你可能想通過TCP/IP連接,但這種默認是禁用的,如果我記得正確的,這需要啓動數據庫之前編輯配置文件)
..
祝你好運。
謝謝,有道理。 Postregsql在Maven Central中可用作ZIP壓縮文件? – yegor256 2011-06-16 18:18:44
不,從postgresql網站:http://www.postgresql.org/download/ – 2011-06-16 21:35:01
它現在,但不是正式支持: com.github.adrianboimvaser:postgresql-dist:9.2.4 – adrianboimvaser 2013-08-31 23:14:41
您聽起來像是在嘗試構建完整的持續集成環境。您應該考慮使用完整的CI工具,例如Cruise Control或Bamboo。
我之前完成的工作是設置一個可從CI服務器訪問的專用CI數據庫,然後有一系列bash/python /任何腳本作爲After Successful Build步驟運行,然後可以運行無論你喜歡什麼額外的整合任務將它與liquibase這樣的東西配對,你可以清除CI數據庫,並確保每次構建都能夠使用最新的模式。
只是帶來了一些新的視角此事:
你也可以啓動PostgreSQL數據庫作爲泊塢窗實例。 Docker的插件生態系統似乎仍然處於不斷變化之中,因此您可能需要自己決定哪個適合。這裏有幾個環節,以加快搜索:
- 1. 我可以使用Gradle maven插件創建Maven POM-only(BOM)構建以部署到Nexus嗎?
- 2. 我可以在Ant中使用遠程構建文件嗎?
- 3. 我可以使用ScriptableObject在Java中構建Rhino JavaAdapter嗎?
- 4. 我可以在Maven之外使用Maven倉庫管理器嗎?
- 5. 我可以在OpenStreetMap中使用PostgreSQL 8.3.x嗎?
- 6. 我可以在android手機中使用postgresql嗎?
- 7. 我可以在SELinux中使用.pgpass嗎? [centos7,pgagent_96,postgresql 9.6.5]
- 8. 我們可以在構建目標中包含maven pmd插件執行嗎?
- 9. 我可以使用Plovr構建Eclipse中的Google Closure項目嗎?
- 10. 可以使用VC++構建git嗎?
- 11. 我可以使用動態Schema.org標記構建我的html嗎?
- 12. 我可以使用更新的API來構建我的apk嗎?
- 13. 我可以在Flask中構建兩層以上的端點嗎?
- 14. 是否可以使用Maven for PHP構建多模塊結構?
- 15. 我可以在PostgreSQL HStore值上使用聚合函數嗎?
- 16. 使用Maven構建
- 17. 我可以在visual studio中使用C#構建Android應用程序嗎
- 18. 我可以繼承使用Interface Builder構建的視圖嗎?
- 19. 我可以使用docker-compose構建一個容器圖像嗎?
- 20. 我可以使用Mono爲ASP.NET Web App構建部署包嗎?
- 21. 我可以只解壓縮並使用Ractivejs嗎? (構建錯誤)
- 22. 我可以使用Linq從IEnumerables構建元組嗎?
- 23. 我可以使用X64構建ARM的gcc嗎?
- 24. 我可以使用JDK7與cloudbees構建
- 25. 我可以在不使用Maven的現有項目中使用Spring roo嗎?
- 26. 我可以在PHP中使用兩種構造方法嗎?
- 27. 我可以在Realm Swift中使用異構集合嗎?
- 28. 我可以在層次結構中使用DI容器嗎?
- 29. 我可以在iOS 8中使用重構故事板嗎?
- 30. 我可以在immutable.js中使用解構賦值嗎?
可以啓動和停止服務器,比方說,在命令行?如果是,那麼只需在整合前/整合後測試階段使用maven-antrun-plugin。 – lexicore 2011-06-15 22:34:39
正如我在問題中提到的 - PostgreSQL服務器在機器上未安裝**。 – yegor256 2011-06-15 22:42:21
我從來沒有提到在_local_機器上啓動/停止服務器。 – lexicore 2011-06-15 22:51:35