Martin Fowler
對持續集成的定義:
Martin Fowler:Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.
具體定義:持續集成式一種軟件開(kāi)發(fā)實(shí)踐。它倡導團隊的成員必須經(jīng)常的集成他們的工作,通常至少每天一次甚至更多次集成。每次集成都需要通過(guò)自動(dòng)化的構建(包括編譯代碼、構建應用、部署程序以及自動(dòng)化測試)來(lái)驗證,從而盡早盡快的發(fā)現集成中的錯誤。大量的團隊利用這樣的方式來(lái)更快的開(kāi)發(fā)內聚的軟件。大大減少此過(guò)程中的集成問(wèn)題。
持續集成強調開(kāi)發(fā)人員提交了新代碼之后,立刻進(jìn)行構建、(單元、自動(dòng)化)測試。根據測試結果,我們可以確定新代碼和原有代碼能否正確地集成在一起。
首先,解釋下集成。我們所有項目的代碼都是托管在SVN服務(wù)器上。每個(gè)項目都要有若干個(gè)單元測試,并有一個(gè)所謂集成測試。所謂集成測試就是把所有的單元測試跑一遍以及其它一些能自動(dòng)完成的測試。只有在本地電腦上通過(guò)了集成測試的代碼才能上傳到SVN服務(wù)器上,保證上傳的代碼沒(méi)有問(wèn)題。所以,集成指集成測試。
再說(shuō)持續。不言而喻,就是指長(cháng)期的對項目代碼進(jìn)行集成測試。既然是長(cháng)期,那肯定是自動(dòng)執行的,否則,人工執行則沒(méi)有保證,而且耗人力。對此,我們有一臺服務(wù)器,它會(huì )定期的從SVN中檢出代碼,并編譯,然后跑集成測試。每次集成測試結果都會(huì )記錄在案。完成這方面工作的就是下面要介紹的Jenkins軟件。當然,它的功能遠不止這些。在我們的項目中,執行這個(gè)工作的周期是1天。也就是,服務(wù)器每1天都會(huì )準時(shí)地對SVN服務(wù)器上的最新代碼自動(dòng)進(jìn)行一次集成測試。
原文轉自:http://gitbook.cn/books/58e54b57cfcd6fa52dcef1d2/index.html