java+调用jacoco_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

org.jacocogroupId>

org.jacoco.coreartifactId>

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);


版权声明:本文为weixin_35414475原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。