二、編寫ant文件自動運行java單元測試
三、修改build.xml文件添加clover任務(wù)
現(xiàn)在我們開始修改build.xml文件,添加clover任務(wù),以實現(xiàn)junit測試覆蓋率的分析。首先,我們添加clover任務(wù)的配置任務(wù);在build.xml文件里添加如下代碼:
這兩行定義了能夠在ant文件里使用clover任務(wù)的配置工作。然后再添加一個clover任務(wù),用來啟動clover構(gòu)建任務(wù):
這里的initString定義了clover覆蓋數(shù)據(jù)庫的信息,它會在執(zhí)行clover任務(wù)時自動創(chuàng)建,里邊保存了源路徑執(zhí)行測試任務(wù)時候的全部信息,clover通過這個demo_coverage.db來創(chuàng)建覆蓋率分析報告。如果這個demo_coverage.db存在,clover在每次運行時自動覆蓋,如果不存在,clover自動創(chuàng)建它。
我們這里使用clover,是為了搜集junit測試時候的覆蓋率信息,所以呢,junit測試過程中,我們需要使用clover.jar包,所以我們還需要把clover.jar文件作為junit運行的依賴庫,因此修改build.classpath代碼成如下所示:
這里順便我們也把path的值說明一下,省得有人不懂哦!這里的ant.home是在計算機里創(chuàng)建的環(huán)境變量ANT_HOME,它的值應(yīng)該是你的ant的安裝路徑,例如c:ant,所以前兩行代碼的意思,是把c:antlibclover.jar和c:antlibjunit.jar作為依賴庫。當(dāng)然,事先你一定要拷貝這兩個jar文件到你的lib目錄。
好了,我們現(xiàn)在開始重新使用clover任務(wù)來運行junit測試!
C:cloversincky>ant clean
Buildfile: build.xml
clean:
[delete] Deleting directory C:cloversinckybuild
BUILD SUCCESSFUL
Total time: 0 seconds
C:cloversincky>ant clover compile
Buildfile: build.xml
clover:
[clover-setup] Clover Version 1.3.8, built on May 18 2005
[clover-setup] loaded from: C:cloverlibclover.jar
[clover-setup] 30 day Evaluation License registered to sinckyzhang@163.com
[clover-setup] You have 10 day(s) before your Evaluation License expires.
[clover-setup] Clover is enabled with initstring 'C:cloversinckydemo_coverage.db'
compile:
[mkdir] Created dir: C:cloversinckybuild
[javac] Compiling 4 source files to C:cloversinckybuild
[clover] Clover Version 1.3.8, built on May 18 2005
[clover] loaded from: C:cloverlibclover.jar
[clover] 30 day Evaluation License registered to sinckyzhang@163.com
[clover] You have 10 day(s) before your Evaluation License expires.
[clover] No coverage database 'C:cloversinckydemo_coverage.db' fou
nd. Creating a fresh one.
[clover] Clover all over. Instrumented 4 files.
BUILD SUCCESSFUL
Total time: 2 seconds
我們會發(fā)現(xiàn)在sincky目錄下多了一個demo_coverage.db文件;之后我們再執(zhí)行測試任務(wù):
C:cloversincky>ant test
Buildfile: build.xml
test:
[java] ......................
[java] Time: 0
[java] OK (22 tests)
BUILD SUCCESSFUL
Total time: 0 seconds
我們會看到又多了一個關(guān)于junit測試的.db文件!現(xiàn)在,我們已經(jīng)使用clover統(tǒng)計完了覆蓋率信息,之后創(chuàng)建clover報告,以直觀方式來查看具體的覆蓋率結(jié)果!這個任務(wù)需要在build.xml里創(chuàng)建任務(wù)。Clover的報告有多種方式:html、pdf、xml以及swingview的圖形化報告,當(dāng)然與eclipse等java的IDE集成,也會在IDE里創(chuàng)建報告;這里我們只演示html類型的報告!我們修改build.xml文件,添加如下任務(wù):
這里的元素指產(chǎn)生的報告類型是當(dāng)前的測試報告,還有歷史報告,我們在后邊講解!這個報告是html格式,創(chuàng)建后的報告放在一個叫做clover_html的文件夾里,報告標(biāo)題叫做Clover demo。