jacoco统计远程服务器代码覆盖率

场景需求

由于项目的需要,当前我们开发的服务端代码和接口以及集成测试代码不是写在同一个项目下,当测接口时,我们发送一个http request请求到Linux服务端,然后服务端返回一个response,这样的情况如何做代码覆盖率统计?

前提条件

  1. 安装ant,并且设置环境变量
  2. 下载jacoco的jar包 点击下载

服务端设置(Linux)

现在的springboot应用非常多,其本身自带tomcat,网上很多都是说修改tomcat的Catalina.sh文件来使用javaagent:

JAVA_OPTS="-javaagent:[yourPath/]jacocoagent.jar=includes=com.didispace.*,output=tcpserver,port=8044,address=30.11.227.26 -Xverify:none"

针对springboot应用使用如下方式运行:

java -javaagent:D:/tools/jacoco-0.7.9/lib/jacocoagent.jar=includes=com.didispace.*,output=tcpserver,port=8044,address=30.11.227.26 -jar Chapter1-1.0.0.jar

output有4个值,分别是file,tcpserver,tcpclient,mbean,默认是file。使用file的方式只有在停掉应用服务的时候才能产生覆盖率文件,而使用tcpserver的方式可以在不停止应用服务的情况下下载覆盖率文件

客户端设置(Windows)

在客户端运行ant dump之前,这时可以对服务端进行接口以及功能测试,这时所有的调服务端接口操作都会记录代码覆盖率。

结合Jenkins生成report

在目录D:\test-resourse\下新建一个文件夹traptrap文件夹下新建一个build.xml文件,文件内容如下:


   
  //此处的value里面的路径,对应上面下载的jar文件路径
  
  

  
    
  

  
//此处的address地址即为程序/tomcat所在的linux机器地址,host与上文命令行host对应
      
  

接着在build.xml文件目录下运行ant dump命令就会在当前目录下出现一个.exec后缀名结尾的文件,出现如下图所示的代表运行成功

jacoco统计远程服务器代码覆盖率_第1张图片
image.png
本地生成report

trap文件夹下新建一个localReport文件夹,localReport文件夹下新建一个build.xml文件



    
  
  
  
    
  
  
  
  
  
  
  
  
  

  
  
      
  

  
  
      
  

  
  
      
      

      
          
              
          

          
                         
                  
                      
                  
                  
                      
                  
              
          

                   
      
  


在刚才新建的build.xml目录下运行如下命令

//先执行
ant dump
//再执行
ant report

这时会在build.xml配置文件reportfolderPath属性配置的路径下生成几个文件,其中有一个index.html文件,将其打开就是覆盖率报告

你可能感兴趣的:(jacoco统计远程服务器代码覆盖率)