讓開發(fā)自動化- 持續(xù)測試_第1頁
讓開發(fā)自動化- 持續(xù)測試_第2頁
讓開發(fā)自動化- 持續(xù)測試_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第第頁讓開發(fā)自動化:持續(xù)測試mkdirdir="${instrumented.dir}"/ignoreregex="org.apache.log4j.*"http://target

targetname="run-instrumented-tests"depends="instrument-classes"classpathlocation="${classes.dir}"/

classpathrefid="test.class.path"/

classpathrefid="project.class.path"/

formattertype="plain"usefile="true"/

formattertype="xml"usefile="true"/

batchtestfork="yes"todir="${logs.junit.dir}"

filesetdir="${ponent.dir}"

patternsetrefid="test.sources.pattern"/

/fileset

/batchtest

/junit

/target

Cobertura產(chǎn)生了一個如圖1中所示的HTML報告。請注意行覆蓋和分支覆蓋的百分比是以包計(jì)算的。可單擊每一個包,獲得類級別的行百分比和路徑百分比,甚至能看到執(zhí)行的源代碼行和它們執(zhí)行的次數(shù)。

圖1.使用Cobertura和Ant生成HTML報告

已經(jīng)介紹了多種類型的測試,甚至介紹了如何測量這些測試的覆蓋率——但是如何確保以正常的間隔執(zhí)行這些測試呢?恰好,這正是CI服務(wù)器(如CruiseControl)大顯身手的地方,接下來對它進(jìn)行介紹。

持續(xù)運(yùn)行測試

一旦將這些各式各樣的開發(fā)人員測試類型合并到一個構(gòu)建過程中時,可以將這些測試中的一些(或者全部)作為CI過程的一部分運(yùn)行。例如,清單9是CruiseControl的config.xml文件的一個片段,我在其中定義了一些東西。首先,我讓CruiseControl每兩分鐘監(jiān)控一次Subversion庫中的改變。如果發(fā)現(xiàn)任何改變,則CruiseControl將啟動一個叫做build-${}.xml的委托構(gòu)建腳本(通常,此腳本用Ant編寫)。該委托構(gòu)建腳本調(diào)用項(xiàng)目的構(gòu)建腳本,后者執(zhí)行編譯并運(yùn)行測試。

我也定義了一些邏輯,將所有不同類型的測試結(jié)果合并到一個CruiseControl日志文件中。而且,我還利用CruiseControl的功能將不同工具生成的報告鏈接(使用artifactspublisher標(biāo)簽)到BuildArtifacts鏈接中,BuildArtifacts可以從CruiseControl的顯示板應(yīng)用程序中獲得。

清單9.使用CruiseControl的CI

...

modificationsetquietperiod="30"

svnRepositoryLocation="/trunk/brewery"

username="bfranklin"

password="G0Fly@Kite"/

/modificationset

scheduleinterval="120"

antanthome="apache-ant-1.6.5"buildfile="build-${}.xml"/

/schedule

logdir="logs/${}"

mergedir="projects/${}/_reports/unit"/

mergedir="projects/${}/_reports/component"/

mergedir="projects/${}/_reports/performance"/

mergedir="projects/${}/_reports/functional"/

mergedir="projects/${}/_reports/coverage"/

/log

publishers

artifactspublisher

dir="projects/${}/_reports/"

dest="projects/artifacts/${}"/

/publishers

...

在將每個源變更應(yīng)用到版本控制庫中時,不必運(yùn)行每個定義的測試。例如,可以設(shè)置CI系統(tǒng)執(zhí)行構(gòu)建(通常稱作提交構(gòu)建),該構(gòu)建只在代碼簽入時運(yùn)行單元測試??梢詾樘峤粯?gòu)建補(bǔ)充一些更重量級的構(gòu)建,例如像運(yùn)行組件測試、功能測試、性能測試以及甚至執(zhí)行代碼檢查的構(gòu)建(請參閱參考資料)。這些構(gòu)建可以以更低的頻率運(yùn)行(如一天一次)。您也可以選擇在提交構(gòu)建之后立即運(yùn)行這些測試和檢查。

調(diào)用所有測試

持續(xù)測試包括了廣度和頻度。通過授權(quán)執(zhí)行不同類型的測試,可獲得更大范圍的覆蓋和信任。此外,通過持續(xù)運(yùn)行這些測試,幾乎能在問題產(chǎn)生就發(fā)現(xiàn)它們.僅僅進(jìn)行單元測試(至少我所定義的單元測試),并不能使你在項(xiàng)目上走得很遠(yuǎn)。取得更高的代碼覆蓋率并且增加團(tuán)隊(duì)的信心,需要通力合作并執(zhí)行自動化組件測試、性能測試和功能測試。此外,使用框架和像JUnit、Selenium以及Co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論