代码覆盖率工具实现原理讲的最清楚的一篇: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.静态代码检查过程

 

 

 

 
posted on 2020-03-10 16:43  温暖的阳光  阅读(1084)  评论(1编辑  收藏  举报