[發(fā)明專利]一種基于JaCoCo基礎(chǔ)上實(shí)現(xiàn)增量代碼覆蓋率統(tǒng)計(jì)的方法和裝置在審
| 申請(qǐng)?zhí)枺?/td> | 202110232658.5 | 申請(qǐng)日: | 2021-03-03 |
| 公開(公告)號(hào): | CN112948249A | 公開(公告)日: | 2021-06-11 |
| 發(fā)明(設(shè)計(jì))人: | 邵磊 | 申請(qǐng)(專利權(quán))人: | 浙江百應(yīng)科技有限公司 |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36 |
| 代理公司: | 杭州浙言專利代理事務(wù)所(普通合伙) 33370 | 代理人: | 易朝暉 |
| 地址: | 311121 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 jacoco 基礎(chǔ)上 實(shí)現(xiàn) 增量 代碼 覆蓋率 統(tǒng)計(jì) 方法 裝置 | ||
本發(fā)明公開了一種基于JaCoCo基礎(chǔ)上實(shí)現(xiàn)增量代碼覆蓋率統(tǒng)計(jì)的方法,所述方法包括:獲取測(cè)試完成后的exec文件,其中,所述exec文件至少包括探針的覆蓋執(zhí)行信息;在JVM中注入javaagent參數(shù);使用JGit獲取基線提交與測(cè)試提交之間的差異代碼;對(duì)所述差異代碼進(jìn)行解析,將所述差異代碼使用更小的顆粒度進(jìn)行切割獲得第一差異信息;根據(jù)所述第一差異信息,基于JaCoCo生成覆蓋率模型解析所述exec文件獲得增量代碼的覆蓋率報(bào)告。
技術(shù)領(lǐng)域
本申請(qǐng)涉及代碼覆蓋率統(tǒng)計(jì)領(lǐng)域,尤其涉及一種基于JaCoCo基礎(chǔ)上實(shí)現(xiàn)增量代碼覆蓋率統(tǒng)計(jì)的方法和裝置。
背景技術(shù)
目前,市場(chǎng)上java主要代碼覆蓋率工具包括EMMA和JaCoCo。JaCoCo優(yōu)勢(shì):
(1) JaCoCo支持分支覆蓋、引入了Agent模式。
(2) EMMA官網(wǎng)已經(jīng)不維護(hù)了,JaCoCo是其團(tuán)隊(duì)開發(fā)的,可以理解為一個(gè)升級(jí)版。
(3) JaCoCo社區(qū)比較活躍,官網(wǎng)也在不斷的維護(hù)更新。
Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技術(shù)監(jiān)控Java程序。很多第三方的工具提供了對(duì)Jacoco的集成,如sonar、Jenkins等。
Jacoco包含了多種尺度的覆蓋率計(jì)數(shù)器,包含指令級(jí)覆蓋(Instructions,C0coverage),分支(Branches,C1coverage)、圈復(fù)雜度(CyclomaticComplexity)、行覆蓋(Lines)、方法覆蓋(non-abstract methods)、類覆蓋(classes)等,但是并沒有提供增量覆蓋的解決方案。
隨著業(yè)務(wù)發(fā)展,存量代碼較多,對(duì)當(dāng)下敏捷開發(fā),現(xiàn)有的全量代碼覆蓋率統(tǒng)計(jì)使用傳統(tǒng)的Jacoco執(zhí)行耗時(shí)較長,效率低下。
發(fā)明內(nèi)容
本申請(qǐng)要解決的技術(shù)問題,在于提供一種基于JaCoCo基礎(chǔ)上實(shí)現(xiàn)增量代碼覆蓋率統(tǒng)計(jì)的方法和裝置,以解決現(xiàn)有現(xiàn)有的全量代碼覆蓋率統(tǒng)計(jì)使用傳統(tǒng)的Jacoco執(zhí)行耗時(shí)較長,效率低下的技術(shù)問題。
為實(shí)現(xiàn)上述目的,本申請(qǐng)采用下述技術(shù)方案:
第一方面,本申請(qǐng)?zhí)峁┮环N基于JaCoCo基礎(chǔ)上實(shí)現(xiàn)增量代碼覆蓋率統(tǒng)計(jì)的方法,所述方法包括:
獲取測(cè)試完成后的exec文件,其中,所述exec文件至少包括探針的覆蓋執(zhí)行信息;
在JVM中注入javaagent 參數(shù);
使用JGit獲取基線提交與測(cè)試提交之間的差異代碼;
對(duì)所述差異代碼進(jìn)行解析,將所述差異代碼使用更小的顆粒度進(jìn)行切割獲得第一差異信息;
根據(jù)所述第一差異信息,基于JaCoCo生成覆蓋率模型解析所述exec文件獲得增量代碼的覆蓋率報(bào)告。
第二方面,本申請(qǐng)?zhí)峁┮环N基于JaCoCo基礎(chǔ)上實(shí)現(xiàn)增量代碼覆蓋率統(tǒng)計(jì)系統(tǒng),所述系統(tǒng)包括:
第一獲取單元,用于獲取測(cè)試完成后的exec文件,其中,所述exec文件至少包括探針的覆蓋執(zhí)行信息;
第一注入單元,用于在JVM中注入javaagent 參數(shù);
第二獲取單元,用于使用JGit獲取基線提交與測(cè)試提交之間的差異代碼;
第一解析單元,用于對(duì)所述差異代碼進(jìn)行解析,將所述差異代碼使用更小的顆粒度進(jìn)行切割獲得第一差異信息;
第二解析單元,用于根據(jù)所述第一差異信息,基于JaCoCo生成的覆蓋率模型解析所述exec文件獲得增量代碼的覆蓋率報(bào)告。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浙江百應(yīng)科技有限公司,未經(jīng)浙江百應(yīng)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110232658.5/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 帶圖形用戶界面的電腦
- 帶圖形用戶界面的電腦
- 生成覆蓋率統(tǒng)計(jì)報(bào)告的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- Java代碼覆蓋率統(tǒng)計(jì)系統(tǒng)
- 一種針對(duì)手工測(cè)試的代碼變更覆蓋率統(tǒng)計(jì)實(shí)現(xiàn)方法
- 數(shù)據(jù)采集方法、裝置和設(shè)備
- 基于jacoco的測(cè)試分析方法、系統(tǒng)、設(shè)備以及介質(zhì)
- 一種基于JaCoCo基礎(chǔ)上實(shí)現(xiàn)增量代碼覆蓋率統(tǒng)計(jì)的方法和裝置
- 一種通過python語言實(shí)現(xiàn)接口覆蓋率統(tǒng)計(jì)的實(shí)現(xiàn)方法
- 代碼測(cè)試覆蓋率統(tǒng)計(jì)方法及裝置
- 互動(dòng)業(yè)務(wù)終端、實(shí)現(xiàn)系統(tǒng)及實(shí)現(xiàn)方法
- 街景地圖的實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實(shí)現(xiàn)裝置及其圖像實(shí)現(xiàn)方法
- 增強(qiáng)現(xiàn)實(shí)的實(shí)現(xiàn)方法以及實(shí)現(xiàn)裝置
- 軟件架構(gòu)的實(shí)現(xiàn)方法和實(shí)現(xiàn)平臺(tái)
- 數(shù)值預(yù)報(bào)的實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 輸入設(shè)備實(shí)現(xiàn)方法及其實(shí)現(xiàn)裝置





