您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源配置管理工具 > HUDSON
持續(xù)集成工具h(yuǎn)udson
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/29 15:45:54 ] 推薦標(biāo)簽:

一.什么是持續(xù)集成
持續(xù)集成的核心概念
CI 過(guò)程會(huì)經(jīng)常構(gòu)建軟件組件;在許多情況下,每當(dāng)源代碼存儲(chǔ)庫(kù)(比如 Subversion 或 ClearCase)中的代碼發(fā)生變化時(shí),都要構(gòu)建軟件組件。CI 的好處是:經(jīng)常構(gòu)建軟件可以確保盡早遇到問(wèn)題(比如代碼缺陷),避免問(wèn)題在軟件開(kāi)發(fā)周期晚期變復(fù)雜時(shí)才被發(fā)現(xiàn)。
工具與過(guò)程
盡管 CI 實(shí)際上是一個(gè)過(guò)程,但是持續(xù)集成 這個(gè)詞常常與一個(gè)或多個(gè)工具相關(guān)聯(lián)。在本教程中,講解如何安裝、配置和使用 Hudson 作為 CI 服務(wù)器,但是要記住,CI 遠(yuǎn)不只是個(gè)工具。實(shí)際上,使用的工具可能是 CI 比較次要的方面,因?yàn)?CI 工具所做的僅僅是在代碼存儲(chǔ)庫(kù)中探測(cè)到修改時(shí)運(yùn)行構(gòu)建。構(gòu)建過(guò)程本身比用來(lái)運(yùn)行它的工具重要得多。
開(kāi)始使用 CI
開(kāi)始使用 CI 需要三個(gè)組件:

    * 用 Ant 或 Maven 等工具建立的自動(dòng)構(gòu)建過(guò)程
    * 一個(gè)代碼存儲(chǔ)庫(kù),比如 CVS 或 Subversion
    * 一個(gè) CI 服務(wù)器,比如 Hudson,但是 cron 作業(yè)也可以滿足需要

我們來(lái)詳細(xì)討論這些組件。
自動(dòng)的構(gòu)建
CI 過(guò)程會(huì)經(jīng)常集成軟件,這需要通過(guò)構(gòu)建來(lái)完成。在 Java 環(huán)境中,Ant 是常用的構(gòu)建平臺(tái)。可以使用 Ant 可靠地自動(dòng)執(zhí)行編譯、測(cè)試等任務(wù),甚至可以執(zhí)行軟件檢查和部署。在掌握了 CI 的所有組件之后,您會(huì)發(fā)現(xiàn)構(gòu)建策略是成功的 CI 過(guò)程重要的方面。如果缺少適當(dāng)?shù)臉?gòu)建過(guò)程,CI 難以發(fā)揮作用。
源代碼管理
為了讓 CI 正確地發(fā)揮作用,需要一個(gè)源代碼管理(SCM)系統(tǒng)或存儲(chǔ)庫(kù),比如 Subversion 或 CVS。CI 服務(wù)器向 SCM 存儲(chǔ)庫(kù)查詢代碼修改。在找到修改時(shí),CI 服務(wù)器執(zhí)行簽出(即更新本地沙箱)并執(zhí)行構(gòu)建。除了執(zhí)行得更頻繁之外,構(gòu)建過(guò)程與在本地環(huán)境中執(zhí)行的構(gòu)建相同。
CI 服務(wù)器
對(duì)于成功的 CI 過(guò)程,需要用一個(gè)自動(dòng)的過(guò)程監(jiān)視 SCM 存儲(chǔ)庫(kù)并在探測(cè)到修改時(shí)運(yùn)行構(gòu)建,這也非常重要。對(duì)于 Java 平臺(tái),有許多可用的 CI 服務(wù)器,包括開(kāi)放源碼軟件和商業(yè)產(chǎn)品。它們的基本配置都很相似,適合監(jiān)視特定的 SCM 并在探測(cè)到修改時(shí)運(yùn)行構(gòu)建。所有 CI 服務(wù)器都有自己的優(yōu)缺點(diǎn)。Hudson 尤其讓人感興趣,因?yàn)樗菀着渲枚揖哂袕?qiáng)大的插件,這些插件可以顯示測(cè)試結(jié)果趨勢(shì)等信息。

二.Hudson 簡(jiǎn)介

Hudson 是一種革命性的開(kāi)放源碼 CI 服務(wù)器,它從以前的 CI 服務(wù)器吸取了許多經(jīng)驗(yàn)教訓(xùn)。Hudson 吸引人的特性之一是它很容易配置:很難找到更容易設(shè)置的 CI 服務(wù)器,也很難找到開(kāi)箱即用特性如此豐富的 CI 服務(wù)器。Hudson 容易使用的第二個(gè)原因是它具有強(qiáng)大的插件框架,所以很容易添加特性。例如,一個(gè) Hudson 插件可以隨時(shí)間的推移跟蹤 FindBugs 和代碼覆蓋。它還可以報(bào)告測(cè)試結(jié)果的趨勢(shì)(來(lái)自 JUnit 或 TestNG)以及構(gòu)建結(jié)果和對(duì)應(yīng)的執(zhí)行時(shí)間。

Hudson 需要運(yùn)行 Java 5。如果需要使用 Hudson 附帶的嵌入式容器(Winstone)之外的其他容器,那么只需使用一種 Servlet 2.4 容器。對(duì)于大多數(shù)情況,Winstone 足夠了。

三.Hudson使用

CI 過(guò)程的后一個(gè)方面是 CI 服務(wù)器本身。CI 服務(wù)器在整個(gè)開(kāi)發(fā)過(guò)程中的主要作用是控制者:當(dāng)服務(wù)器在代碼存儲(chǔ)庫(kù)中探測(cè)到修改時(shí),它將運(yùn)行構(gòu)建的任務(wù)委托給構(gòu)建過(guò)程本身。如果構(gòu)建失敗了,那么 CI 服務(wù)器將通知相關(guān)方面,然后繼續(xù)監(jiān)視存儲(chǔ)庫(kù)。它的角色看起來(lái)是被動(dòng)的;但是,它是快速反映問(wèn)題的關(guān)鍵。

安裝 Hudson

使用 Hudson 的主要好處之一是它的設(shè)置很簡(jiǎn)單。在簡(jiǎn)單的情況下,Hudson 只需要兩個(gè)步驟:

   1. 下載新的版本(它打包為一個(gè) WAR 文件)。 hudson官方網(wǎng)址:https://hudson.dev.java.net/
   2. 運(yùn)行 java -jar hudson.war。

這樣可以了。因?yàn)橄螺d的是一個(gè) WAR 文件,所以如果愿意,可以將它部署在 Tomcat 或 JBoss 等容器中。這完全由您自己決定。當(dāng)然,Hudson 假設(shè)在安裝它的機(jī)器上運(yùn)行著 Java 5,而且如果定義了 JAVA_HOME 環(huán)境變量,Hudson 會(huì)使用它。(正如前面提到的,Hudson 需要 Java 5。)

在安裝并運(yùn)行 Hudson 之后(將 WAR 文件部署到 servlet 容器或從命令行執(zhí)行 java -jar hudson.war),啟動(dòng)瀏覽器并訪問(wèn)默認(rèn)安裝位置。如果通過(guò)命令行運(yùn)行 Hudson 而且您在本地機(jī)器上,那么可以訪問(wèn) http://localhost:8080/。

 

如果一切正常(實(shí)際上不太可能出問(wèn)題),應(yīng)該會(huì)看到圖 2 所示的 Hudson 啟動(dòng)頁(yè)面。

配置 Hudson

如果訪問(wèn) Hudson 主頁(yè)的本地實(shí)例并單擊左上角的 Manage Hudson 鏈接,應(yīng)該會(huì)看到圖 3 所示的可配置選項(xiàng)列表。
圖 3. 配置 Hudson 非常容易

上一頁(yè)12345下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd