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

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

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


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

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

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

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

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