您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源配置管理工具 > HUDSON
使用Hudson和FindBugs進(jìn)行持續(xù)集成和代碼檢查
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/1/23 14:37:24 ] 推薦標(biāo)簽:Hudson 持續(xù)集成 代碼檢查

        近在IBM developerWorks發(fā)表的一篇文章中談到了如何使用開源工具將構(gòu)建過程中的持續(xù)集成(Continuous Integration,CI)和代碼檢查這兩項(xiàng)任務(wù)自動(dòng)化。它描述了如何安裝和配置Hudson——一款由java.net社區(qū)開發(fā)的CI服務(wù)器,一旦檢測(cè)到源碼發(fā)生變化時(shí),它會(huì)從Subversion代碼倉庫中獲取新代碼,并運(yùn)行Ant構(gòu)建腳本。

        作者Andrew Glover將如下三項(xiàng)作為了典型CI環(huán)境設(shè)置的主要組件:
        一個(gè)使用構(gòu)建工具(如Apache Ant)的自動(dòng)化構(gòu)建過程。
        像CVS或Subversion之類的源碼倉庫。
        CI服務(wù)器,如Hudson。
        Andrew用了一個(gè)java應(yīng)用為例,講述了如何在Hudson服務(wù)器上配置java項(xiàng)目,從而運(yùn)行自動(dòng)化構(gòu)建。他還展示了如何通過Hudson的插件擴(kuò)展將類似于FindBugs和PMD的代碼分析和軟件檢查工具進(jìn)行集成。


        在 文章中,作者闡述了如何使用Hudson來捕獲構(gòu)建過程的執(zhí)行時(shí)間和測(cè)試結(jié)果所反映的趨勢(shì)。在每一次構(gòu)建中,CI服務(wù)器都會(huì)對(duì)JUnit結(jié)果的XML文件 進(jìn)行解析,并生成一個(gè)趨勢(shì)圖,用于展示在相鄰的兩次構(gòu)建之間,增加了多少個(gè)測(cè)試。同時(shí),它還可顯示出測(cè)試是否通過(藍(lán)圖表示通過,紅圖表示失。。通過 PMD或者FindBugs發(fā)現(xiàn)的代碼沖突或是缺陷,都會(huì)在每一次構(gòu)建后被記錄下來,以供歷史分析。
        還可以為Hudson配置一個(gè)SMTP服務(wù)器,從而在構(gòu)建失敗時(shí)向整個(gè)項(xiàng)目團(tuán)隊(duì)發(fā)送郵件提醒。它還支持使用RSS作為提醒機(jī)制,開發(fā)團(tuán)隊(duì)可以通過RSS feeds來訂閱項(xiàng)目的構(gòu)建狀態(tài)頁面。

        Hudson同時(shí)支持JUnit和TestNG這兩種測(cè)試框架。它還可以與其它SCM工具(如CVS,ClearCase或Accurev )和構(gòu)建工具(如Maven和Gant)進(jìn)行集成。在Hudson網(wǎng)站上列出了所有的插件,我們可以看到,它可以和眾多的開源或是商業(yè)的SCM、代碼覆蓋和問題跟蹤工具進(jìn)行集成。

        在developerWorks上的另外一篇有關(guān)CI話題的文章中,Paul Duvall向讀者展示了在建立CI環(huán)境時(shí)的一些佳實(shí)踐,并指出如何避免一些錯(cuò)誤做法(他把它們稱之為CI反模式)。這些佳實(shí)踐是:

        開發(fā)者應(yīng)該頻繁提交小段代碼,而不是等上很長(zhǎng)時(shí)間以后,一次性的提交很多變化;
        當(dāng)構(gòu)建失敗時(shí),CI服務(wù)器應(yīng)該立刻通知項(xiàng)目團(tuán)隊(duì);
        應(yīng)當(dāng)使用類似E-mail或者RSS之類的反饋機(jī)制來與項(xiàng)目團(tuán)隊(duì)報(bào)告構(gòu)建狀態(tài);
        構(gòu)建狀態(tài)反饋應(yīng)該簡(jiǎn)潔,只應(yīng)該包括與構(gòu)建相關(guān)的信息;
        構(gòu)建服務(wù)器應(yīng)該有足夠的硬件配置,從而進(jìn)行更快的構(gòu)建;
        項(xiàng)目團(tuán)隊(duì)?wèi)?yīng)遵循“管道式構(gòu)建”的原則來異步執(zhí)行那些需要較長(zhǎng)時(shí)間才能運(yùn)行完的構(gòu)建過程。

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