java操作jacoco

使用jacoco来统计代码覆盖率时,用java来清空覆盖率数据或者输出覆盖率数据

一、相关包

1,下载jacocoagent.jar包
maven:https://mvnrepository.com/artifact/org.jacoco/org.jacoco.agent

jar包:
http://central.maven.org/maven2/org/jacoco/org.jacoco.agent/0.7.7.201606060606/org.jacoco.agent-0.7.7.201606060606.jar
该包不需要放在代码里,放在机器某个位置就行
2,下载org.jacoco.core.jar包,并放到代码里
如果是maven:
https://mvnrepository.com/artifact/org.jacoco/org.jacoco.core


<dependency>
    <groupId>org.jacocogroupId>
    <artifactId>org.jacoco.coreartifactId>
    <version>0.7.7.201606060606version>
dependency>

jar包下载:
http://central.maven.org/maven2/org/jacoco/org.jacoco.core/0.7.7.201606060606/org.jacoco.core-0.7.7.201606060606.jar
该包用于操作覆盖率数据

二、使用

1、运行程序
运行程序时,jvm options加上

-javaagent:/data/services/tomcat_base/testcov.bam.yy.com/lib/jacocoagent.jar=output=tcpserver,address=127.0.0.1,port=6300

其中地址address为当前机器的Ip,port为操作覆盖率数据的端口,可自行定义,默认为6300
至于如果加jvm options请自行google

官方api
http://www.eclemma.org/jacoco/trunk/doc/api/

2、java操作覆盖率数据
清空覆盖率数据

    ExecDumpClient client = new ExecDumpClient();
    client.setReset(true);
    client.setDump(false);
    //目标机器的ip和端口,对应着运行程序时javaagent参数里的ip和端口
    client.dump(ip, port);

输出覆盖率文件jacoco.exec

    ExecDumpClient client = new ExecDumpClient();
    client.setDump(true);
    ExecFileLoader file = client.dump("183.60.218.133", 6999);
    file.save(new File("d:jacoco.exec"), false);

你可能感兴趣的:(研发管理,java,jacoco)