jenkins+git+jacoco+ant统计远程服务的测试覆盖率

前提是Jenkins环境已经搭建完成,相关插件下载完成。可以参考我的上一篇文章:Linux下配置Jenkins+git+sonar+sonar-scanner

我使用到的各个工具的版本:

jenkins: 2.164.3

jacoco:0.8.2

ant:1.9.14

git:公司内部的

maven:3.5.4

jenkins整体构建过程介绍:     

a.jekins 从git上 拉代码,编译

b. 远程机器配置jacocoagent启动方式,提供端口给下面ant dump用

c.jekins上 编写build.xml文件放下job路径下,执行ant dump命令,得到jacoco.exec文件(路径在build.xml中配置)       

d.jekins执行ant report,生成覆盖率报表

操作步骤:

1. 下载jacoco插件,下载地址:https://www.jacoco.org/jacoco/ 我下载的是jacoco-0.8.2版本,解压后需要使用的是lib包下面的jacocoagent.jar和jacocoant.jar。其中jacocoant.jar放到jenkins所在机器上,jacocoagent.jar放到远程服务所在的机器上

2. 远程tomcat服务增加启动参数:-javaagent:/usr/local/app/jacoco/jacocoagent.jar=includes=*,output=tcpserver,port=6300,address=*,append=true 服务启动后记得检查6300端口是否处于监听状态

3. Jenkins所在机器安装ant,网上教程很多不再赘述

4. Jenkins所在的机器新增build.xml文件,内容如下(这是最简单的情况,第7点有多台机器,多个模块的情况):

   

 

 

 

   

 

 

 

 

 

 

 

 

     

 

 

 

     


 

 

     

     

     

         

             

         


         

                       

                 

                     

                 

                 

                     

                 

                 

         

                 

     

 

5. jenkins新增统计代码覆盖率的任务,主要配置如下:


pwd

mvn clean compile -Dmaven.test.skip=true

git checkout test

git pull

pwd

echo $WORKSPACE

/home/devs/ant/apache-ant-1.9.14/bin/ant dump

/home/devs/ant/apache-ant-1.9.14/bin/ant report

6. 点立即构建,即可统计到结果


7. 附一个多台机器,并且工程下有多个模块的build.xml:

   

 

 

 

   

 

 

 

 

 

 

 

 

 

     

 

 

 

     

     


 

 

     

     


     

         

             

         


         

                       

                 

                     

                 

                 

                     

                 

             

                       

                 

                     

                 

                 

                     

                 

             

                       

                 

                     

                 

                 

                     

                 

                           

                       

                 

                     

                 

                 

                     

                 

                           

                       

                 

                     

                 

                 

                     

                 

                   

         

                 

     

 

你可能感兴趣的:(jenkins+git+jacoco+ant统计远程服务的测试覆盖率)