springboot jacoco ant 生成单元测试报告

1 篇文章 0 订阅
1 篇文章 0 订阅

一、安装jacoco

下载链接
在这里插入图片描述
解压后主要用到这两个
在这里插入图片描述
配置springboot启动时环境变量,我用的开发工具是idea
在这里插入图片描述
在这里插入图片描述
添加如下命令:

-javaagent:D:\soft\dev\jacoco-0.8.8\lib\jacocoagent.jar=includes=com.*,output=tcpserver,address=127.0.0.1,port=6300,append=true

其中jacocoagent.jar改成自己刚下载的路径,includes最好自定义为自己项目的包名避免扫描没必要的类库,port最好先检查本系统有无占用情况,有的话更换空闲端口
配置好后点击apply应用再启动项目可以看到命令已被执行
在这里插入图片描述
直到项目启动完成

二、安装ant

下载链接
在这里插入图片描述
下载后解压 把ant配置的系统环境变量
1.新建环境变量 ANT_HOME D:\soft\dev\apache-ant-1.10.12
2.Path新增%ANT_HOME%\bin 保存
3.命令窗口输入 ant -v 检查是否安装成功,如下图表示安装成功
在这里插入图片描述

创建build.xml并生成报告

在ant的bin目录下新建build.xml文件

<?xml version="1.0" ?>
<project name="wftestReport" xmlns:jacoco="antlib:org.jacoco.ant" default="jacoco">
    <!--Jacoco的安装路径-->
    <property name="jacocoantPath" value="D:\soft\dev\jacoco-0.8.8\lib\jacocoant.jar"/>
    
    <!--最终生成.exec文件的路径,Jacoco就是根据这个文件生成最终的报告的-->
    <property name="jacocoexecPath" value="D:\app\jacocodata\covercode\jacoco.exec"/>
    
    <!--生成覆盖率报告的路径,直接放在tomct下面,外界直接访问-->
    <property name="reportfolderPath" value="D:\app\jacocodata\report"/>
    
    <!--远程tomcat服务的ip地址-->
    <property name="server_ip" value="127.0.0.1"/>
    
    <!--前面配置的远程tomcat服务打开的端口,要跟上面配置的一样-->
    <!--这个端口有别于tomcat的端口,相当于是嵌在tomcat里的监视器-->
    <property name="server_port" value="6300"/>
    
    
    <!--源代码路径-->
    <!--可以配置多个源代码-->
    <property name="im-coframe-boot" value="D:\code\sxxh\back\im-coframe\im-coframe-boot\src\main\java"/>
    <property name="im-coframe-api" value="D:\code\sxxh\back\im-coframe\im-coframe-api\src\main\java"/>
    <property name="im-coframe-impl" value="D:\code\sxxh\back\im-coframe\im-coframe-impl\src\main\java"/>

    
    <!--.class文件路径-->

    <property name="im-coframe-boot_class" value="D:\code\sxxh\back\im-coframe\im-coframe-boot\target\classes"/>
    <property name="im-coframe-api_class" value="D:\code\sxxh\back\im-coframe\im-coframe-api\target\classes"/>
    <property name="im-coframe-impl_class" value="D:\code\sxxh\back\im-coframe\im-coframe-impl\target\classes"/>

    <!--合并报告路径-->
    <property name="mergePath" value="D:\app\jacocodata\covercode" />
    
    
    
    <!--让ant知道去哪儿找Jacoco-->
    <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
    <classpath path="${jacocoantPath}" />
    </taskdef>
    
    <!--dump任务:
 根据前面配置的ip地址,和端口号,
 访问目标tomcat服务,并生成.exec文件。-->
    <target name="dump">
    <jacoco:dump address="${server_ip}" reset="false" destfile="${jacocoexecPath}" port="${server_port}" append="true"/>
    </target>
    <target name="merge">
    <!--将路径下的exec文件全部合并,并存放到destfile中-->
    <jacoco:merge destfile="D:\app\jacocodata\covercode\merged.exec">
    <fileset dir="${mergePath}" includes="*.exec"/>
    </jacoco:merge>
    </target>
    
    
    
    <!--jacoco任务:
    根据前面配置的源代码路径和.class文件路径,
    根据dump后,生成的.exec文件,生成最终的html覆盖率报告。-->
    <target name="report">
        <!--暂时不删除,一旦删除,其他两个的报告也没了-->
         <delete dir="${reportfolderPath}" />
         <mkdir dir="${reportfolderPath}" />
        <jacoco:report>
        <executiondata>
        <file file="${jacocoexecPath}" />
        </executiondata>
        <structure name="im-corfarm report">
            <group name="im-coframe-api_express">
            <classfiles>
                <fileset dir="${im-coframe-api_class}" />
                </classfiles>
            <sourcefiles encoding="utf-8">
                <fileset dir="${im-coframe-api}" />
                </sourcefiles>
            </group>
            <group name="im-coframe-boot_express">
                <classfiles>
                    <fileset dir="${im-coframe-boot_class}" />
                </classfiles>
                <sourcefiles encoding="utf-8">
                    <fileset dir="${im-coframe-boot}" />
                </sourcefiles>
            </group>
            <group name="im-coframe-impl_express">
                <classfiles>
                    <fileset dir="${im-coframe-impl_class}" />
                </classfiles>
                <sourcefiles encoding="utf-8">
                    <fileset dir="${im-coframe-impl}" />
                </sourcefiles>
            </group>
        </structure>
         <html destdir="${reportfolderPath}" encoding="utf-8" />
         <csv destfile="D:\app\jacocodata\covercode\report.csv" />
        </jacoco:report>
    </target>
</project>

根据自己jacoco和ant的安装目录进行修改
我的项目是maven多模块项目 配置了多个源代码和class文件路径,可以根据实际情况删减property和group
由于项目是启动状态,接下来可以用postman调用接口或在前端页面测试几个功能模块

  • 最后生成报告:

打开命令窗口:分别执行ant命令

ant dump
ant merge
ant report

在这里插入图片描述
出现BUILD SUCCESS说明报告生成成功,到report目录下查看报告
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值