日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Clover在JUnit中的使用

系統 1677 0

下面還是簡要的介紹一下Clover在JUnit中的使用(構建工具為Ant):
??? 1.在使用Clover做測試覆蓋率分析之前請確保您的代碼及測試代碼無誤。
??? 2.如果采用Ant作為構建工具,則將clover.jar放入Ant的classpath下。也可采用另一種方法,可先將clover.jar及Clover中的另一個jar包cenquatasks.jar放入項目的lib下,采用cenquatasks.jar中的extendclasspath方法將clover.jar擴展到Ant下,在build.xml中加入以下代碼:

< taskdef? resource ="com/cenqua/ant/antlib.xml" ?classpath ="lib/cenquatasks.jar" />
< extendclasspath? path ="lib/clover.jar" />
< taskdef? resource ="clovertasks" ?classpath ="lib/clover.jar" />
??? 3.添加clovertask到Ant中,如下:
< taskdef? resource ="clovertasks" />
??? 4.在build.xml中加入clover的初始化任務:
?? <!-- ?clover.init -->
??
< target? name ="clover.init" >
????
< clover-setup? initString ="clover_coverage.db" ?preserve ="true" />
??
</ target >
注意:步驟3中的代碼可放入4中。
??? 5.加入一個或多個運行clover report的任務,最后的結果有多種輸出方式:html、pdf、swing、xml等等。
其中,swing方式的代碼如下:
? <!-- ?show?the?clover?coverage?result?with?swing? -->
???
< target? name ="clover.swing" ?depends ="clover" >
????????
< clover-view />
???
</ target >
html方式如下:
? <!-- ?show?the?clover?coverage?result?with?html?file? -->
?
< target? name ="clover.html" ?depends ="clover" >
????
< clover-report >
??????
< current? outfile ="${target.dir}/clover" ?title ="Clover?Report" >
????????
< format? type ="html" /> ?
??????
</ current > ?????
????
</ clover-report >
??
</ target >
??? 上面代碼中都depends="clover",這里clover任務只是為了簡潔而設,代碼如下:
<!-- ?runs?the?clover? -->
????
< target? name ="clover" ?depends ="clean,clover.init,compile,test" />
??? 通過以上代碼的設置即可運行clover.swing 或者clover.html運行Clover查看測試代碼的覆蓋率。測試結果如下圖所示:
???? 其中build.xml中的運行JUnit測試代碼的任務如下:
? <!-- ?runs?the?tests? -->
?????
< target? name ="test" >
????????
< java? classname ="MoneyTest" ??fork ="yes" >
????????????
< classpath? refid ="build.classpath" />
????????
</ java >
?????
</ target >
這是通過java命令運行的,也就是在MoneyTest.java中有main方法:
public ? static ? void ?main(String?args[])? {
????????junit.textui.TestRunner.run(MoneyTest.
class );
????}
還可以直接通過junit命令運行,如下:
< target? name ="unittest" ?depends ="clover.init,compile" ?description ="Test?the?application" >
????????
< taskdef? resource ="clovertasks" />
????????
< echo? message ="Testing?the?application?with?junit .." />
????????
< junit? haltonfailure ="true" ?printsummary ="true" ??fork ="true" >
????????????????
< classpath? refid ="build.classpath" />
????????????????
< classpath >
????????????????????????
< pathelement? path ="${ant.home}/lib/clover.jar" />
????????????????
</ classpath >
????????????????
< formatter? type ="brief" ?usefile ="false" />
????
<!-- ????????????<test?name="MoneyTest"/>??? -->
????????????????
< batchtest >
????????????????????????
< fileset? dir ="${build}" ?includes ="**/*Test.class" />
????????????????
</ batchtest >
????????
</ junit >
</ target >
以上兩種test方法都可使用。
??? 在所有任務中,首先要運行clover.init這樣就能啟動clover,對后面的任務進行監控并adapt一些操作,在隨后的compile過程中,clover會記錄所編譯的java文件的各種數據并存入其db數據庫,clover會監控隨后運行的UnitTest,計算測試的覆蓋率并寫入數據庫。這里有一點要注意:無論是采用java方式還是junit方式運行test房間,都要在命令中加入屬性fork="true",這是因為clover要在JVM shutdown的時候將數據寫入數據庫,如果沒有這個屬性,就會出現“no coverage data found for *.db”錯誤,出現測試覆蓋率均為0的結果。

Clover在JUnit中的使用


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 方城县| 龙陵县| 白玉县| 中方县| 屏南县| 都安| 广宗县| 札达县| 宝清县| 北京市| 当雄县| 滕州市| 明水县| 谷城县| 抚松县| 玉树县| 辽中县| 龙南县| 师宗县| 花莲市| 百色市| 疏附县| 洛南县| 福海县| 乌审旗| 信阳市| 商水县| 长汀县| 会同县| 汤阴县| 扎囊县| 达尔| 八宿县| 雅江县| 深圳市| 杨浦区| 双柏县| 莆田市| 徐州市| 津市市| 万载县|