發(fā)布于:2021-03-01 15:49:07
1
1415
0
導(dǎo)讀
高德地圖開(kāi)放平臺(tái)產(chǎn)品不斷迭代,代碼邏輯越來(lái)越復(fù)雜,現(xiàn)有的測(cè)試流程不能保證完全覆蓋所有業(yè)務(wù)代碼,測(cè)試不到的代碼及分支,會(huì)存在一定的風(fēng)險(xiǎn)。為了保證測(cè)試全面覆蓋,需要引入代碼覆蓋率做為測(cè)試指標(biāo),需要對(duì)SDK代碼進(jìn)行染色,測(cè)試結(jié)束后可生成代碼覆蓋率報(bào)告,作為發(fā)版前的一項(xiàng)重要卡點(diǎn)指標(biāo)。本文小結(jié)了Android端代碼染色原理及技術(shù)實(shí)踐。
相關(guān)閱讀:iOS代碼染色原理及技術(shù)實(shí)踐
JaCoCo工具
JaCoCo有以下優(yōu)點(diǎn):
支持Ant和Gradle打包方式,可以自由切換。
支持離線模式,更貼合SDK的使用場(chǎng)景。
JaCoCo文檔比較全面,還在持續(xù)維護(hù),有問(wèn)題便于解決。
JaCoCo主要是通過(guò)ASM技術(shù)對(duì)Java字節(jié)碼進(jìn)行處理和插樁,ASM和Java字節(jié)碼技術(shù)不是本文重點(diǎn),感興趣的朋友可以自行了解。下面重點(diǎn)介紹JaCoCo的插樁原理。
由于Java字節(jié)碼是線性的指令序列,所以JaCoCo主要是利用ASM處理字節(jié)碼,在需要的地方插入一些特殊代碼。
我們通過(guò)Test1方法觀察一下JaCoCo做的處理。
作者介紹
熱門(mén)博客推薦