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

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

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

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

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

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

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

Hudson 是一種革命性的開放源碼 CI 服務(wù)器,它從以前的 CI 服務(wù)器吸取了許多經(jīng)驗(yàn)教訓(xùn)。Hudson 吸引人的特性之一是它很容易配置:很難找到更容易設(shè)置的 CI 服務(wù)器,也很難找到開箱即用特性如此豐富的 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í)間。

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