java操作jacoco

    xiaoxiao2021-12-14  53

    使用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

    <!-- https://mvnrepository.com/artifact/org.jacoco/org.jacoco.core --> <dependency> <groupId>org.jacoco</groupId> <artifactId>org.jacoco.core</artifactId> <version>0.7.7.201606060606</version> </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);
    转载请注明原文地址: https://ju.6miu.com/read-963931.html

    最新回复(0)