增量代碼覆蓋率工具設計


代碼覆蓋率工具實現原理講的最清楚的一篇:https://testerhome.com/topics/15866
增量覆蓋率工具:https://www.cnblogs.com/cocc/p/12365950.html 思路:去掉生成覆蓋率路徑下的已經覆蓋的包和非java代碼的文件和文件夾,同步修改index.html的相關內容
工具:https://github.com/wozijisun/jacoco-diff
在執行環境添加jacoco運行環境參數
JAVA_OPTS="$JAVA_OPTS -javaagent:/path/jacocoagent.jar=includes=*,output=tcpserver,append=false,address=$IP,port=$JACOCO_PORT"

2、Java 應用啟動腳本添加 jacocoagent 相關 JVM 參數

需要將 jacocoagent.jar 推送到部署應用的服務器上,筆者這里用 Ansible 進行了批量推送。
Java 應用啟動腳本需要加入類似下面的 JVM 參數:

JAVA_OPTS="$JAVA_OPTS -javaagent:/path/jacocoagent.jar=includes=*,output=tcpserver,append=false,address=$IP,port=$JACOCO_PORT"

這樣在應用成功啟動后,會暴露一個 TCP 服務,客戶端可以連接到這個服務並獲取執行數據文件。

相關屬性說明如下:

  • append:其中 append=false 表示 dump 每次會生成一個新的執行數據文件,如果 append=true,dump 時則會將數據追加到已存在的執行數據文件。
    其中 output=tcpserver 表示 agent 監聽來自被 adrress 和 port 屬性指定的TCP 端口的連接,執行數據被寫到這個連接;
  • output:如果 output=tcpclient 則表示在啟動時,agent 連接到被 adrress 和 port 屬性指定的TCP 端口,執行數據被寫到這個連接;
    如果 output=file 則表示在 JVM 終止時,執行數據被寫到被 destfile 屬性指定的文件。output 默認值為 file 。
  • address:當 output 為 tcpserver 時綁定到的 IP 地址或主機名,或者當 output 為 tcpclient 時連接到的 IP 地址或主機名。
    在 tcpserver 模式下,值為“*”導致代理只接受本機地址上的連接。address 默認值為 127.0.0.1 。
  • port:當 output 方式為 tcpserver 時綁定到該端口,或者當 output 方式為 tcpclient 時連接到該端口。
    在 tcpserver 模式下,端口必須可用,這意味着如果多個 JaCoCo agent 在同一台機器上運行,則必須指定不同的端口。port 默認值為 6300 。

 增量代碼覆蓋率實現方案:diff-cover jacoco 配合使用:https://www.jianshu.com/p/50c5cc021396  

git diff+jacoc配合使用 http://www.51testing.com/html/40/n-3726340.html

android+jacoco多模塊項目中統計子模塊代碼覆蓋率 https://blog.csdn.net/qq_27459827/article/details/79656831

 

在多項目工程中統計子工程的覆蓋率 https://blog.csdn.net/cyanolive1/article/details/51782379

1.在配置庫和公有fetch完成則開始下載demo

 

 

 2.第二次訪問:這次訪問的目的:獲取最近修改的commit

 

 3.靜態代碼檢查過程

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM