您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > HUDSON
Hudson與持續(xù)集成
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/2/7 17:03:20 ] 推薦標(biāo)簽:Hudson 持續(xù)集成

持續(xù)集成(Continuous Integration,CI)是持續(xù)地編譯、測試、檢查和部署源代碼的過程。在許多持續(xù)集成環(huán)境中,這意味著每當(dāng)源代碼管理庫中的代碼發(fā)生改變時,都要執(zhí)行新的構(gòu)建。CI 的好處很明確:經(jīng)常組裝軟件可以大大提高在早期發(fā)現(xiàn)缺陷的可能性,而缺陷在早期還不復(fù)雜,容易解決.

持續(xù)集成(CI)是一種實踐,旨在緩和和穩(wěn)固軟件的構(gòu)建過程。CI能夠幫助您的開發(fā)團(tuán)隊?wèi)?yīng)對如下挑戰(zhàn):
軟件構(gòu)建自動化:使用CI,您只要按一下按鈕,它會依照預(yù)先制定的時間表,或者響應(yīng)某一特定事件,開始進(jìn)行一次構(gòu)建過程。如果您想取出源碼并生成構(gòu)件,該過程也不會局限于某一特定IDE、電腦或者個人。

持續(xù)自動的構(gòu)建檢查:CI系統(tǒng)能夠設(shè)定成持續(xù)地對新增或修改后簽入的源代碼執(zhí)行構(gòu)建,也是說,當(dāng)軟件開發(fā)團(tuán)隊需要周期性的檢查新增或修改后的代碼時,CI系統(tǒng)會不斷要求確認(rèn)這些新代碼是否破壞了原有軟件的成功構(gòu)建。這減少了開發(fā)者們在手動檢查彼此相互依存的代碼中變化情況需要花費的時間和精力(說直接一點也是錢啊,呵呵)。

持續(xù)自動的構(gòu)建測試:這個是構(gòu)建檢查的擴(kuò)展部分,這個過程將確保當(dāng)新增或修改代碼時不會導(dǎo)致預(yù)先制定的一套測試方案在構(gòu)建構(gòu)件后失敗。構(gòu)建測試和構(gòu)建檢查一樣,失敗都會觸發(fā)通知(Email,RSS等等)給相關(guān)的當(dāng)事人,告知對方一次構(gòu)建或者一些測試失敗了。

構(gòu)件生成后續(xù)過程的自動化:一旦自動化檢查和測試的構(gòu)建已經(jīng)完成,一個軟件構(gòu)件的構(gòu)建周期中可能也需要一些額外的任務(wù),諸如生成文檔、打包軟件、部署構(gòu)件到一個運行環(huán)境或者軟件倉庫。只有這樣,構(gòu)件才能更迅速地提供給用戶使用。

CI系統(tǒng)的基本結(jié)構(gòu)
 該系統(tǒng)的各個組成部分將按如下順序來發(fā)揮作用:
開發(fā)者檢查新增和修改到源代碼倉庫后的代碼。
CI服務(wù)器會為每一個項目創(chuàng)建了一個單獨的工作區(qū)。當(dāng)預(yù)設(shè)或請求一次新的構(gòu)建時,它將把源代碼倉庫的源碼存放到對應(yīng)的工作區(qū),在哪里構(gòu)建執(zhí)行到哪個目錄下。
CI服務(wù)器會在新近創(chuàng)建或者更新的工作區(qū)內(nèi)執(zhí)行構(gòu)建過程。
一旦構(gòu)建完成,CI服務(wù)器會在一個新的構(gòu)件中選擇性地執(zhí)行原先定義的一套測試。如果構(gòu)建失敗,相關(guān)責(zé)任人將會通過電子郵件、即時短信或者其他的方式獲取到(失敗)通知。
如果構(gòu)建成功,這個構(gòu)件會被打包并轉(zhuǎn)移到一個部署目標(biāo)(如應(yīng)用服務(wù)器) 和/或存儲為軟件倉庫中的一個新版本。這個如軟件倉庫可以是CI服務(wù)器的一部分,也可以是一個外部的倉庫,諸如一個文件服務(wù)器或者像Java.net、SourceForge分發(fā)的一個有效網(wǎng)址。源代碼倉庫和構(gòu)件倉庫是可以分開的,實際上它可以利用一些根本沒有包含任何源代碼控制系統(tǒng)(CVS、SVN、CSS等等)的CI服務(wù)器。
CI服務(wù)器通常會通過某種控制臺來進(jìn)行項目的配置和調(diào)試,并且根據(jù)請求響應(yīng)相應(yīng)的操作,諸如即時構(gòu)建、生成報告,或者檢索構(gòu)件。

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

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