測試開發之单元测试-实现Git增量代码的Jacoco覆盖率统计
原創-
2023-05-25 10:33:53
-
4696
- 使用Git的diff指令,計算出兩個版本的差異;
- 改造Jacoco源代碼,只針對增量代碼生成報告。
基本的功能滴滴的super-jacoco项目已经实现,并把它分装成了一个服務。大家可以基于这个开源项目进行二次开发,本文我们给大家介绍它的工作方式。
1、從官網下載、安装Oracle Java SDK。执行java -version,可输出版本信息表示安装成功。笔者這裏安装的是JDK 11;
2、從這裏下載解压Apache Maven构建工具3.9.1版,并将其加入系统PATH环境变量。成功后执行mvn -v,可正确返回版本信息;
3、安裝、啓動MySQL數據庫,可以從這裏下載免费的社区版;
4、執行Git克隆命令,獲取項目源代碼;
git clone https://github.com/didi/super-jacoco.git5、打開項目src/main/resources目錄下的application.properties文件,修改MySQL數據庫連接地址、賬號和密碼;
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/super-jacoco?useUnicode=true&characterEncoding=utf8 spring.datasource.username=user spring.datasource.password=P2ssw0rd6、執行maven命令,編譯jar包;
mvn package -Dmaven.test.skip=true7、启动编译好的服務jar包;
java -jar super-jacoco.jar8、如果是使用的IDE,可通过右键CodeCovApplication.java文件启动服務;
9、服務启动成功后,会执行一个定时任务来扫描数据库,以查找是否有覆盖率统计的任务需要执行,日志类似下图;
10、使用PostMan或命令行工具,发送“新建覆盖率统计任务”的请求。请确保参数uuid唯一,成功后返回code 200;
地址:http://127.0.0.1:8899/cov/triggerUnitCover 方法:POST 数据: { "uuid": "uuid001", "type": 1, "gitUrl": "https://gitee.com/ngtesting/ci_test_jcoco.git", "subModule": "", "baseVersion": "v1", "nowVersion": "v2", "envType": "-Ptest" }
12、任务执行完成后,发送“获取覆盖率报告”的请求到服務;
13、在浏覽器中打開返回的報告地址,得到以下頁面。
14、此處爲撰寫本文時,可成功運行的被測項目。具體介紹可參考上一篇文章;
15、有關super-jacoco中增量覆蓋掃描的實現機制,可以參考《jacoco增量覆蓋率實踐》這篇博客閱讀相應章節代碼。
-
禅道産品
禅道開源版 禅道企業版 禅道旗艦版 禅道IPD版 -
核心功能
産品管理 項目管理 質量管理 效能管理 -
使用文檔
基本版手冊 企業版手冊 旗艦版手冊 IPD版手冊 開發中心手冊 -
幫助中心
积分問答 常見問題 論壇交流 使用視頻 Gitee GitHub -
關于我們
關于我們 禅道軟件 最新動態 禅道活動 -
禅道社區
禅道博客 積分排行 積分商城 禅道書院 -
聯系方式
聯系人:魏中顯 電話:18561939726 微信:18561939726 Q Q:1746749398北京、上海、深圳分部
友情鏈接:
ZTF自動化測試框架
ZenData測試數據生成器
喧喧IM
敏捷開發
敏捷咨詢
測試窩
悅庫網盤
Ledge知識平台
渠成軟件
ZDOO全協同企業管理軟件
融管理社區
ZenDAS數據分析工具
ZenShot跨平台截圖工具
飛信釘即時通訊解決方案
項目管理
IPD學習網
PMP百科網
艾體驗
創無記2049