軟件項(xiàng)目的持續(xù)集成方法和裝置的制造方法
【專利摘要】本發(fā)明公開一種軟件項(xiàng)目的持續(xù)集成方法和裝置。所述方法包括:每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài);若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件;將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件;對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。應(yīng)用本發(fā)明提供的技術(shù)方案,能夠很好的提升軟件項(xiàng)目持續(xù)集成的集成效率。
【專利說明】
軟件項(xiàng)目的持續(xù)集成方法和裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種軟件項(xiàng)目的持續(xù)集成方法和裝置。
【背景技術(shù)】
[0002]持續(xù)集成是一種軟件開發(fā)實(shí)踐,即軟件項(xiàng)目的團(tuán)隊(duì)開發(fā)成員需要經(jīng)常集成他們的工作,通常每個(gè)成員每天至少集成一次,這就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構(gòu)建(包括編譯,發(fā)布,自動化測試)來驗(yàn)證,從而盡快地發(fā)現(xiàn)集成錯(cuò)誤。持續(xù)集成的目的是讓團(tuán)隊(duì)在持續(xù)的基礎(chǔ)上收到反饋并進(jìn)行改進(jìn),而不必等到軟件開發(fā)周期的后期才尋找和修復(fù)缺陷,從而降低項(xiàng)目風(fēng)險(xiǎn)和解決問題的代價(jià)。
[0003]目前已經(jīng)存在一些持續(xù)集成的技術(shù),但是,目前的技術(shù)往往需要人手動啟動集成,效率較低,或者每次檢測到開發(fā)人員提交代碼便觸發(fā)編譯操作,而由于開發(fā)人員提交代碼時(shí)可能并非一次提交完成,這種情況導(dǎo)致經(jīng)常出現(xiàn)編譯失敗的情況,并且當(dāng)開發(fā)人員再次進(jìn)行代碼提交的時(shí)候,構(gòu)建任務(wù)就會在等待隊(duì)列里面等待當(dāng)前任務(wù)的執(zhí)行結(jié)束,從而影響軟件項(xiàng)目的集成效率??梢姡壳暗某掷m(xù)集成的技術(shù),集成效率較低。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供了一種軟件項(xiàng)目的持續(xù)集成方法和裝置,能夠很好的提升軟件項(xiàng)目持續(xù)集成的集成效率。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0006]一種軟件項(xiàng)目的持續(xù)集成方法,包括:
[0007]每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài);
[0008]若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件;
[0009]將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件;
[0010]對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。
[0011]優(yōu)選的,所述每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),包括:
[0012]每隔所述預(yù)設(shè)時(shí)間以Ant腳本執(zhí)行所述軟件項(xiàng)目代碼的檢出操作,生成檢測日志;
[0013]監(jiān)控所述檢測日志,以確定所述軟件項(xiàng)目代碼的狀態(tài)。
[0014]優(yōu)選的,所述對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志包括:
[0015]獲取測試數(shù)據(jù)文件,生成模塊測試對象,所述模塊測試對象包括至少一個(gè)單元操作數(shù)據(jù)對象;
[0016]確定所述模塊測試對象的測試方式和執(zhí)行順序;
[0017]依照所述測試方式和所述執(zhí)行順序,調(diào)用所述模塊測試對象對所述軟件項(xiàng)目文件執(zhí)行自動化測試,生成測試日志。
[0018]優(yōu)選的,所述確定所述模塊測試對象的測試方式和執(zhí)行順序包括:
[0019]確定各個(gè)所述模塊測試對象的依賴關(guān)系,將存在依賴關(guān)系的每一組模塊測試對象分別組合成模塊測試對象鏈;
[0020]設(shè)定每一組所述模塊測試對象鏈中的所述模塊測試對象以串行方式執(zhí)行,設(shè)定不存在依賴關(guān)系的所述模塊測試對象以并行方式執(zhí)行。
[0021]優(yōu)選的,還包括:
[0022]依據(jù)所述測試日志統(tǒng)計(jì)測試結(jié)果,生成所述測試結(jié)果的統(tǒng)計(jì)報(bào)表。
[0023]—種軟件項(xiàng)目的持續(xù)集成裝置,所述裝置包括:
[0024]檢測模塊,用于每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài);
[0025]編譯模塊,用于若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件;
[0026]部署模塊,用于將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件;
[0027]測試模塊,用于對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。
[0028]優(yōu)選的,所述檢測模塊包括:
[0029]代碼檢出單元,用于每隔所述預(yù)設(shè)時(shí)間以Ant腳本執(zhí)行所述軟件項(xiàng)目代碼的檢出操作,生成檢測日志;
[0030]監(jiān)控單元,用于監(jiān)控所述檢測日志,以確定所述軟件項(xiàng)目代碼的狀態(tài)。
[0031]優(yōu)選的,所述測試模塊包括:
[0032]獲取單元,用于獲取測試數(shù)據(jù)文件,生成模塊測試對象,所述模塊測試對象包括至少一個(gè)單元操作數(shù)據(jù)對象;
[0033]確定單元,用于確定所述模塊測試對象的測試方式和執(zhí)行順序;
[0034]測試單元,用于依照所述測試方式和所述執(zhí)行順序,調(diào)用所述模塊測試對象對所述軟件項(xiàng)目文件執(zhí)行自動化測試,生成測試日志。
[0035]優(yōu)選的,所述確定單元包括:
[0036]確定子單元,用于確定各個(gè)所述模塊測試對象的依賴關(guān)系,將存在依賴關(guān)系的每一組模塊測試對象分別組合成模塊測試對象鏈;
[0037]設(shè)定子單元,用于設(shè)定每一組所述模塊測試對象鏈中的所述模塊測試對象以串行方式執(zhí)行,設(shè)定不存在依賴關(guān)系的所述模塊測試對象以并行方式執(zhí)行。
[0038]優(yōu)選的,還包括:
[0039]生成模塊,用于依據(jù)所述測試日志統(tǒng)計(jì)測試結(jié)果,生成所述測試結(jié)果的統(tǒng)計(jì)報(bào)表。
[0040]經(jīng)由上述的技術(shù)方案可知,與現(xiàn)有技術(shù)相比,本發(fā)明提供了一種軟件項(xiàng)目的持續(xù)集成方法和裝置。本發(fā)明提供的技術(shù)方案,每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件,然后將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件,最后對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。本發(fā)明提供的技術(shù)方案,實(shí)現(xiàn)了軟件項(xiàng)目持續(xù)集成的自動化,無需人手動啟動集成,能夠有效提成集成效率,同時(shí),由于每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),預(yù)設(shè)時(shí)間是一個(gè)時(shí)間段,因此,能夠給予開發(fā)人員提交代碼操作的一個(gè)時(shí)間片,在這個(gè)時(shí)間內(nèi)只要相關(guān)的開發(fā)人員提交完代碼,即提交的是相對完整的代碼,即可成功集成,而不是另外一種現(xiàn)有技術(shù)方案中只要檢測到開發(fā)人員提交代碼便立即觸發(fā)編譯操作,從而能夠有效減少編譯失敗的幾率,減少重復(fù)集成的次數(shù),從而能夠提升集成效率,另外,預(yù)設(shè)時(shí)間給予了開發(fā)人員多次順利提交代碼的機(jī)會,能夠避免另外一種現(xiàn)有技術(shù)中當(dāng)開發(fā)人員再次進(jìn)行代碼提交的時(shí)候,還需等待上一次提交代碼后觸發(fā)的編譯任務(wù)執(zhí)行結(jié)束的問題,也能夠有效地提升集成效率。因此,本發(fā)明提供的技術(shù)方案,能夠很好的提升軟件項(xiàng)目持續(xù)集成的集成效率。
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0042]圖1為本發(fā)明實(shí)施例提供的一種軟件項(xiàng)目的持續(xù)集成方法的流程圖;
[0043]圖2為本發(fā)明實(shí)施例提供的一種軟件項(xiàng)目的持續(xù)集成裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0044]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0046]實(shí)施例
[0047]請參閱圖1,圖1為本發(fā)明實(shí)施例提供的一種軟件項(xiàng)目的持續(xù)集成方法的流程圖。如圖1所示,該方法包括:
[0048]步驟SlOl,每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài);
[0049]具體的,本發(fā)明實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成方法,基于jenkins持續(xù)集成工具來實(shí)現(xiàn)。
[°°50] 可選的,通過在在Build per1dically欄內(nèi)使用cron表達(dá)式來預(yù)先設(shè)置所述預(yù)設(shè)時(shí)間。
[0051 ] 可選的,所述步驟SlOl包括:
[0052]每隔所述預(yù)設(shè)時(shí)間以Ant腳本執(zhí)行所述軟件項(xiàng)目代碼的檢出操作,生成檢測日志;
[0053]監(jiān)控所述檢測日志,以確定所述軟件項(xiàng)目代碼的狀態(tài)。
[0054]步驟S102,若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件;
[0055]可選的,使用ant對所述軟件項(xiàng)目代碼進(jìn)行編譯時(shí),在ant構(gòu)建文件中使用target對應(yīng)指定的模塊,方便在編譯出錯(cuò)時(shí)的問題定位。
[0056]步驟S103,將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件;
[0057]步驟S104,對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。
[0058]具體的,執(zhí)行本發(fā)明實(shí)施例提供的技術(shù)方案之前,需要預(yù)先進(jìn)行相關(guān)設(shè)置操作,可選的,包括:使用jenkins建立4個(gè)任務(wù)分別對應(yīng)集成過程中的步驟SlOl?步驟S104這4個(gè)集成子任務(wù);對步驟SlOl設(shè)置周期執(zhí)行屬性,通過在BuiId per1dicalIy欄內(nèi)使用cron表達(dá)式配置自動執(zhí)行周期;對步驟S102?步驟S104這三個(gè)步驟設(shè)置關(guān)聯(lián)觸發(fā)執(zhí)行,通過啟用構(gòu)建觸發(fā)器內(nèi)的“在其他項(xiàng)目構(gòu)建完成后才執(zhí)行構(gòu)建”選項(xiàng),使得這三個(gè)步驟都會在前提步驟成功執(zhí)行后自動執(zhí)行,從而實(shí)現(xiàn)步驟SlOl?步驟S104的依次自動觸發(fā)執(zhí)行操作。
[0059]本發(fā)明實(shí)施例提供的技術(shù)方案,每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件,然后將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件,最后對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。本發(fā)明實(shí)施例提供的技術(shù)方案,實(shí)現(xiàn)了軟件項(xiàng)目持續(xù)集成的自動化,無需人手動啟動集成,能夠有效提成集成效率,同時(shí),由于每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),預(yù)設(shè)時(shí)間是一個(gè)時(shí)間段,因此,能夠給予開發(fā)人員提交代碼操作的一個(gè)時(shí)間片,在這個(gè)時(shí)間內(nèi)只要相關(guān)的開發(fā)人員提交完代碼,即提交的是相對完整的代碼,即可成功集成,而不是另外一種現(xiàn)有技術(shù)方案中只要檢測到開發(fā)人員提交代碼便立即觸發(fā)編譯操作,從而能夠有效減少編譯失敗的幾率,減少重復(fù)集成的次數(shù),從而能夠提升集成效率,另外,預(yù)設(shè)時(shí)間給予了開發(fā)人員多次順利提交代碼的機(jī)會,能夠避免另外一種現(xiàn)有技術(shù)中當(dāng)開發(fā)人員再次進(jìn)行代碼提交的時(shí)候,還需等待上一次提交代碼后觸發(fā)的編譯任務(wù)執(zhí)行結(jié)束的問題,也能夠有效地提升集成效率。因此,本發(fā)明實(shí)施例提供的技術(shù)方案,能夠很好的提升軟件項(xiàng)目持續(xù)集成的集成效率。
[0060]另外,本發(fā)明實(shí)施例提供的技術(shù)方案,由于自動化程度高,并且能夠有效減少編譯失敗的幾率,減少重復(fù)集成的次數(shù),因此集成成本相對于現(xiàn)有技術(shù)能夠明顯降低,同時(shí)可靠性更高。
[0061]可選的,本發(fā)明另外一個(gè)實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成方法,所述步驟S104包括:
[0062]獲取測試數(shù)據(jù)文件,生成模塊測試對象,所述模塊測試對象包括至少一個(gè)單元操作數(shù)據(jù)對象;
[0063]具體的,所述單元操作數(shù)據(jù)對象包括以下屬性:測試操作指令、待測目標(biāo)關(guān)鍵字和測試驅(qū)動數(shù)據(jù)。可選的,以web項(xiàng)目為例,待測目標(biāo)關(guān)鍵字是指待測試軟件中html元素的定位方式;測試操作指令是指,對html元素的執(zhí)行的操作,如點(diǎn)擊,輸入等;測試驅(qū)動數(shù)據(jù)是指,用來驗(yàn)證待測試軟件中待測試對象正確性的測試數(shù)據(jù)。
[0064]確定所述模塊測試對象的測試方式和執(zhí)行順序;
[0065]具體的,確定各個(gè)所述模塊測試對象的依賴關(guān)系,將存在依賴關(guān)系的每一組模塊測試對象分別組合成模塊測試對象鏈;
[0066]設(shè)定每一組所述模塊測試對象鏈中的所述模塊測試對象以串行方式執(zhí)行,設(shè)定不存在依賴關(guān)系的所述模塊測試對象以并行方式執(zhí)行。
[0067]也就是說,對于串行執(zhí)行的模塊測試對象,如果在先模塊測試對象沒有成功執(zhí)行完畢,則停止后續(xù)的關(guān)聯(lián)模塊測試對象的執(zhí)行;對于并行執(zhí)行的模塊測試對象,無論當(dāng)前執(zhí)行成功與否,都不會影響其他模塊測試對象的執(zhí)行。
[0068]依照所述測試方式和所述執(zhí)行順序,調(diào)用所述模塊測試對象對所述軟件項(xiàng)目文件執(zhí)行自動化測試,生成測試日志;
[0069]具體的,依照所述測試方式和所述執(zhí)行順序,調(diào)用所述模塊測試對象,并使用所述單元操作數(shù)據(jù)對象中的屬性執(zhí)行自動化測試,生成測試日志。
[0070]本發(fā)明實(shí)施例提供的實(shí)現(xiàn)軟件自動化測試的方法,從加載測試數(shù)據(jù)到生成測試腳本,以及編譯腳本并執(zhí)行自動化測試都無需用戶參與。另外,本發(fā)明實(shí)施例提供的技術(shù)方案支持測試數(shù)據(jù)的關(guān)聯(lián)測試,即可以把一些測試操作和其他測試操作關(guān)聯(lián)起來,根據(jù)相關(guān)測試案例的先決條件判斷是否需要執(zhí)行(例如一個(gè)發(fā)郵件的自動測試步驟:需要先進(jìn)行郵箱登錄操作,再進(jìn)行發(fā)送郵件操作。當(dāng)郵箱登錄測試失敗時(shí)不再進(jìn)行發(fā)送郵件測試。),能夠提高自動化測試的執(zhí)行效率。并且本發(fā)明實(shí)施例提供的技術(shù)方案,能夠?qū)崿F(xiàn)自動化測試的模塊化,實(shí)現(xiàn)了測試數(shù)據(jù)的重復(fù)使用,比如之前已經(jīng)寫好一個(gè)登錄模塊的測試數(shù)據(jù),后續(xù)需要做的就是在需要的地方調(diào)用,不用重復(fù)寫登錄模塊的測試數(shù)據(jù),同時(shí)也方便模塊測試對象的維護(hù),假如登錄模塊發(fā)生了變化,改變登錄模塊的測試數(shù)據(jù)即可,那么所有依賴登錄模塊的測試數(shù)據(jù)不用做任何修改,因此能夠降低人力和時(shí)間的投入,節(jié)省自動化測試的成本。
[0071]可選的,本發(fā)明另外一個(gè)實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成方法,所述步驟S104使用selenium測試工具執(zhí)行自動化測試。
[0072]也就是說,本發(fā)明實(shí)施例提供的技術(shù)方案,完全能夠用于web項(xiàng)目中UI(UserInterface,用戶界面)層的自動化測試。即通過jenkins與selenium對接在集成過程中能夠?qū)崿F(xiàn)對web項(xiàng)目中Ui層的自動化測試,填補(bǔ)了持續(xù)集成平臺里web項(xiàng)目Ui層測試方面的空白,大大減輕了web項(xiàng)目中UI層測試的工作量。
[0073]可選的,本發(fā)明另外一個(gè)實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成方法,還包括:
[0074]依據(jù)所述測試日志統(tǒng)計(jì)測試結(jié)果,生成所述測試結(jié)果的統(tǒng)計(jì)報(bào)表。
[0075]可選的,本發(fā)明另外一個(gè)實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成方法,還包括:
[0076]實(shí)時(shí)監(jiān)測所述步驟S102?所述步驟S104任意一步驟的執(zhí)行情況,若存在某步驟執(zhí)行失敗,停止當(dāng)前操作,向預(yù)先綁定的電子郵箱發(fā)送包括所述某步驟執(zhí)行失敗信息的電子郵件。
[0077]具體的,若存在某步驟執(zhí)行失敗,停止當(dāng)前操作,等待下一次集成。
[0078]為了更加全面地闡述本發(fā)明提供的技術(shù)方案,對應(yīng)于本發(fā)明實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成方法,本發(fā)明公開一種軟件項(xiàng)目的持續(xù)集成裝置。
[0079]請參閱圖2,圖2為本發(fā)明實(shí)施例提供的一種軟件項(xiàng)目的持續(xù)集成裝置的結(jié)構(gòu)圖。如圖2所示,該裝置包括:
[0080]檢測模塊201,用于每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài);[0081 ]可選的,所述檢測模塊201包括:
[0082]代碼檢出單元,用于每隔所述預(yù)設(shè)時(shí)間以Ant腳本執(zhí)行所述軟件項(xiàng)目代碼的檢出操作,生成檢測日志;
[0083]監(jiān)控單元,用于監(jiān)控所述檢測日志,以確定所述軟件項(xiàng)目代碼的狀態(tài)。
[0084]編譯模塊202,用于若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件;
[0085]部署模塊203,用于將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件;
[0086]測試模塊204,用于對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。
[0087]應(yīng)用本發(fā)明實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成裝置,實(shí)現(xiàn)了軟件項(xiàng)目持續(xù)集成的自動化,無需人手動啟動集成,能夠有效提成集成效率,同時(shí),由于每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),預(yù)設(shè)時(shí)間是一個(gè)時(shí)間段,因此,能夠給予開發(fā)人員提交代碼操作的一個(gè)時(shí)間片,在這個(gè)時(shí)間內(nèi)只要相關(guān)的開發(fā)人員提交完代碼,即提交的是相對完整的代碼,即可成功集成,而不是另外一種現(xiàn)有技術(shù)方案中只要檢測到開發(fā)人員提交代碼便立即觸發(fā)編譯操作,從而能夠有效減少編譯失敗的幾率,減少重復(fù)集成的次數(shù),從而能夠提升集成效率,另外,預(yù)設(shè)時(shí)間給予了開發(fā)人員多次順利提交代碼的機(jī)會,能夠避免另外一種現(xiàn)有技術(shù)中當(dāng)開發(fā)人員再次進(jìn)行代碼提交的時(shí)候,還需等待上一次提交代碼后觸發(fā)的編譯任務(wù)執(zhí)行結(jié)束的問題,也能夠有效地提升集成效率。因此,本發(fā)明提供的技術(shù)方案,能夠很好的提升軟件項(xiàng)目持續(xù)集成的集成效率。
[0088]可選的,本發(fā)明另外一個(gè)實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成裝置,所述測試模塊204包括:
[0089]獲取單元,用于獲取測試數(shù)據(jù)文件,生成模塊測試對象,所述模塊測試對象包括至少一個(gè)單元操作數(shù)據(jù)對象;
[0090]確定單元,用于確定所述模塊測試對象的測試方式和執(zhí)行順序;
[0091]測試單元,用于依照所述測試方式和所述執(zhí)行順序,調(diào)用所述模塊測試對象對所述軟件項(xiàng)目文件執(zhí)行自動化測試,生成測試日志。
[0092]可選的,所述確定單元包括:
[0093]確定子單元,用于確定各個(gè)所述模塊測試對象的依賴關(guān)系,將存在依賴關(guān)系的每一組模塊測試對象分別組合成模塊測試對象鏈;
[0094]設(shè)定子單元,用于設(shè)定每一組所述模塊測試對象鏈中的所述模塊測試對象以串行方式執(zhí)行,設(shè)定不存在依賴關(guān)系的所述模塊測試對象以并行方式執(zhí)行。
[0095]可選的,本發(fā)明另外一個(gè)實(shí)施例提供的軟件項(xiàng)目的持續(xù)集成裝置,還包括:
[0096]生成模塊,用于依據(jù)所述測試日志統(tǒng)計(jì)測試結(jié)果,生成所述測試結(jié)果的統(tǒng)計(jì)報(bào)表。
[0097]經(jīng)由上述的技術(shù)方案可知,與現(xiàn)有技術(shù)相比,本發(fā)明提供了一種軟件項(xiàng)目的持續(xù)集成方法和裝置。本發(fā)明提供的技術(shù)方案,每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件,然后將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件,最后對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。本發(fā)明提供的技術(shù)方案,實(shí)現(xiàn)了軟件項(xiàng)目持續(xù)集成的自動化,無需人手動啟動集成,能夠有效提成集成效率,同時(shí),由于每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),預(yù)設(shè)時(shí)間是一個(gè)時(shí)間段,因此,能夠給予開發(fā)人員提交代碼操作的一個(gè)時(shí)間片,在這個(gè)時(shí)間內(nèi)只要相關(guān)的開發(fā)人員提交完代碼,即提交的是相對完整的代碼,即可成功集成,而不是另外一種現(xiàn)有技術(shù)方案中只要檢測到開發(fā)人員提交代碼便立即觸發(fā)編譯操作,從而能夠有效減少編譯失敗的幾率,減少重復(fù)集成的次數(shù),從而能夠提升集成效率,另外,預(yù)設(shè)時(shí)間給予了開發(fā)人員多次順利提交代碼的機(jī)會,能夠避免另外一種現(xiàn)有技術(shù)中當(dāng)開發(fā)人員再次進(jìn)行代碼提交的時(shí)候,還需等待上一次提交代碼后觸發(fā)的編譯任務(wù)執(zhí)行結(jié)束的問題,也能夠有效地提升集成效率。因此,本發(fā)明提供的技術(shù)方案,能夠很好的提升軟件項(xiàng)目持續(xù)集成的集成效率。
[0098]另外,本發(fā)明提供的技術(shù)方案,由于自動化程度高,并且能夠有效減少編譯失敗的幾率,減少重復(fù)集成的次數(shù),因此集成成本相對于現(xiàn)有技術(shù)能夠明顯降低,同時(shí)可靠性更尚O
[0099]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0100]本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0101]對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【主權(quán)項(xiàng)】
1.一種軟件項(xiàng)目的持續(xù)集成方法,其特征在于,包括: 每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài); 若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件; 將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件; 對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài),包括: 每隔所述預(yù)設(shè)時(shí)間以Ant腳本執(zhí)行所述軟件項(xiàng)目代碼的檢出操作,生成檢測日志; 監(jiān)控所述檢測日志,以確定所述軟件項(xiàng)目代碼的狀態(tài)。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志包括: 獲取測試數(shù)據(jù)文件,生成模塊測試對象,所述模塊測試對象包括至少一個(gè)單元操作數(shù)據(jù)對象; 確定所述模塊測試對象的測試方式和執(zhí)行順序; 依照所述測試方式和所述執(zhí)行順序,調(diào)用所述模塊測試對象對所述軟件項(xiàng)目文件執(zhí)行自動化測試,生成測試日志。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述確定所述模塊測試對象的測試方式和執(zhí)行順序包括: 確定各個(gè)所述模塊測試對象的依賴關(guān)系,將存在依賴關(guān)系的每一組模塊測試對象分別組合成模塊測試對象鏈; 設(shè)定每一組所述模塊測試對象鏈中的所述模塊測試對象以串行方式執(zhí)行,設(shè)定不存在依賴關(guān)系的所述模塊測試對象以并行方式執(zhí)行。5.根據(jù)權(quán)利要求1?4任一項(xiàng)所述的方法,其特征在于,還包括: 依據(jù)所述測試日志統(tǒng)計(jì)測試結(jié)果,生成所述測試結(jié)果的統(tǒng)計(jì)報(bào)表。6.一種軟件項(xiàng)目的持續(xù)集成裝置,其特征在于,所述裝置包括: 檢測模塊,用于每隔預(yù)設(shè)時(shí)間檢測版本管理系統(tǒng)內(nèi)的軟件項(xiàng)目代碼的狀態(tài); 編譯模塊,用于若所述軟件項(xiàng)目代碼發(fā)生更新,對更新后的所述軟件項(xiàng)目代碼進(jìn)行編譯,生成軟件項(xiàng)目文件; 部署模塊,用于將所述軟件項(xiàng)目文件發(fā)送至設(shè)定服務(wù)器,啟動所述軟件項(xiàng)目文件; 測試模塊,用于對所述軟件項(xiàng)目文件進(jìn)行自動化測試,生成測試日志。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述檢測模塊包括: 代碼檢出單元,用于每隔所述預(yù)設(shè)時(shí)間以Ant腳本執(zhí)行所述軟件項(xiàng)目代碼的檢出操作,生成檢測日志; 監(jiān)控單元,用于監(jiān)控所述檢測日志,以確定所述軟件項(xiàng)目代碼的狀態(tài)。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述測試模塊包括: 獲取單元,用于獲取測試數(shù)據(jù)文件,生成模塊測試對象,所述模塊測試對象包括至少一個(gè)單元操作數(shù)據(jù)對象; 確定單元,用于確定所述模塊測試對象的測試方式和執(zhí)行順序; 測試單元,用于依照所述測試方式和所述執(zhí)行順序,調(diào)用所述模塊測試對象對所述軟件項(xiàng)目文件執(zhí)行自動化測試,生成測試日志。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述確定單元包括: 確定子單元,用于確定各個(gè)所述模塊測試對象的依賴關(guān)系,將存在依賴關(guān)系的每一組模塊測試對象分別組合成模塊測試對象鏈; 設(shè)定子單元,用于設(shè)定每一組所述模塊測試對象鏈中的所述模塊測試對象以串行方式執(zhí)行,設(shè)定不存在依賴關(guān)系的所述模塊測試對象以并行方式執(zhí)行。10.根據(jù)權(quán)利要求6?9任一項(xiàng)所述的裝置,其特征在于,還包括: 生成模塊,用于依據(jù)所述測試日志統(tǒng)計(jì)測試結(jié)果,生成所述測試結(jié)果的統(tǒng)計(jì)報(bào)表。
【文檔編號】G06F11/36GK105955749SQ201610304929
【公開日】2016年9月21日
【申請日】2016年5月10日
【發(fā)明人】徐天豪, 趙秋鵬, 李敬召
【申請人】北京啟明星辰信息安全技術(shù)有限公司, 啟明星辰信息技術(shù)集團(tuán)股份有限公司