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