2012-02-25 86 views
2

我們將使用Hudson/Jenkins構建服務器來構建我們的服務器應用程序(只需調用maven)並針對它運行集成測試。我們將準備3 Hudson/Jenkins作業:用於構建,部署和運行集成測試,它們按此順序互相調用。所有這些工作(構建,部署,集成測試)將每晚進行。使用JUnit,Maven和Hudson/Jenkins進行集成測試

集成測試用JUnit編寫,並由mvn test(將依次由「test」Hudson/Jenkins作業調用)調用。由於他們需要服務器啓動並運行,我們必須運行該「部署」作業。

它有道理嗎?是否有任何特殊的服務器部署應用程序和運行測試或Hudson/Jenkins可以嗎?

+0

你爲什麼要使用三種不同的工作?你使用什麼樣的服務器? (什麼樣的應用程序?) – khmarbaise 2012-02-25 14:34:45

回答

6

它絕對有意義,基本上你是指一個構建管道。有一個Jenkins-plugin幫助可視化上游/下游項目(您在jenkins中創建新的管道視圖)。

至於服務器組件的部署,這取決於你在哪個技術/堆棧上運行。例如,你可以編寫一個腳本,在jenkins中使用後期構建步驟將應用程序部署到測試環境。

另一種選擇是使用maven插件來部署應用程序。您可以將配置文件中的部署步驟分開,並在部署步驟中僅運行部署目標。

基本上有很多選項,但構建管道的想法很有意義。要閱讀構建管道和相關主題,我建議看看Continuous Deployment

有關詹金斯的更多信息,看看this video

它有道理嗎?是否有任何特殊的服務器部署 應用程序和運行測試或哈德森/詹金斯可以嗎?

您可以在jenkins所在的同一臺服務器上運行應用程序,但是有意義取決於應用程序。如果它很大程度上取決於特定的服務器設置,則更好的選擇可能是在vm中運行服務器,而在源代碼控制中運行配置。有大量的工具來幫助自動化這個,我的頭已根據您的服務器的技術PuppetChefVagrant

2

,你可以做到這一切在一個單一的哈德遜項目的頂部,執行你的集成使用Maven的Failsafe plugin而不是Surefire進行測試。

這使您可以在執行集成測試之前啓動和部署,並在完成後關閉服務器。它還允許您將集成測試與單元測試分開。

對於Java EE應用程序,您可以使用Cargo執行啓動/部署/停止步驟,也可以使用嵌入式Jetty和Jetty Maven plugin