1.引言
1.1目的與范圍
代碼覆蓋率100%不能保證程序無問題,但是測試沒有覆蓋的代碼是存在風(fēng)險(xiǎn)的描扯。
代碼覆蓋率作為一種手段,用來輔助我們改善開發(fā)活動(dòng)趟薄。
測試覆蓋率绽诚,一種講測試覆蓋了多少需求點(diǎn),還一種就是測試覆蓋了多少行代碼杭煎,多少個(gè)方法恩够,多少個(gè)分支等。通過jacoco實(shí)現(xiàn)黑盒的代碼覆蓋率統(tǒng)計(jì)羡铲,對(duì)精準(zhǔn)測試是非常有幫助蜂桶,根據(jù)當(dāng)前覆蓋情況去進(jìn)行針對(duì)性測試。
測試覆蓋率可以和CI工具(如Jenkins)結(jié)合也切,本文目前針對(duì)非CI模式下扑媚,在使用CI的項(xiàng)目組中采用CI的模式腰湾,在CI模式下,更加期望通過單元測試自動(dòng)進(jìn)行覆蓋率疆股。
1.2使用要求
1.3閱讀對(duì)象
1.4術(shù)語定義
對(duì)系統(tǒng)的關(guān)鍵性詞匯進(jìn)行統(tǒng)一定義费坊,避免出現(xiàn)同義詞和二義性語言。
術(shù)語/名詞 解釋說明
測試覆蓋率
1.5參考資料
Java Code Coverage官網(wǎng) https://www.eclemma.org/
2.Jacocoagent配置
2.1下載安裝jar
下載jacocoagent.jar旬痹,復(fù)制到tomcat安裝目錄下的lib目錄附井。
2.2源碼調(diào)整
ClassProbesAdapter.java
2.3eclipse設(shè)置
2.3.1安裝插件:
2.3.2設(shè)置tomcat參數(shù)
Vm arguments參數(shù)中增加如圖參數(shù)(一定在最前邊):
-javaagent:/xxx/tomcat8/lib/jacocoagent.jar=includes=x.*,output=tcpserver,port=8044,address=127.0.0.1 -Xverify:none
2.3.3打卡coverage的view
2.3.4功能測試及數(shù)據(jù)采集
啟動(dòng)tomcat進(jìn)行功能測試,在coverage視圖中右鍵導(dǎo)入數(shù)據(jù)两残。
測試過程中/完成后右鍵點(diǎn)擊import session或者右鍵點(diǎn)擊refresh進(jìn)行數(shù)據(jù)的采集展示羡忘。
2.3.5單元測試及數(shù)據(jù)分析
如下圖,操作更簡單磕昼。
2.3.6分析數(shù)據(jù)
源碼中對(duì)本次修改代碼要求全覆蓋。
3.其他說明
可以多次導(dǎo)入覆蓋率數(shù)據(jù)节猿,匯總形成最終的覆蓋率票从。
4.附件