jacoco + tomcat = jacoco.exec,报告零覆盖率。救命。

时间:2012-03-23 11:29:33

标签: tomcat jacoco

我在Tomcat上部署了一个Web应用程序。在我进一步了解详细信息之前,请先详细说明。

版本:jdk 1.7,Tomcat - 7.0.19,jacoco -0.5.6

我已将jdk1.7添加到Tomcat。在我添加的\ apache-tomcat-7.0.19 \ bin \ startup.bat文件中。

SET JAVA_HOME=C:\ProgramFiles\Java\jdk1.7.0

此外,我已将jacoco代理添加到Tomcat。在apache-tomcat-7.0.19 \ bin \ catalina.bat中我添加了。

SET JACOCO=-javaagent:<my download folder>\jacoco-0.5.6.201201232323\lib\jacocoagent.jar=destfile=C:\jacoco.exec,append=true,includes=* 
set JAVA_OPTS=%JAVA_OPTS% %JACOCO%

现在,当我启动Tomcat并点击我的Web应用程序时,正如预期的那样,有一个C:\ jacoco.exec文件。

我现在已将代码移动到以下目录结构    jacoco.exec  /斌/  / coveragereport

现在我使用了来自http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java的类ReportGenerator。我在/ coveragereport目录中收到了大量HTML格式的报告。但是,所有代码都显示为未触及。虽然在我启动Tomcat之后,我已经去了http://localhost:/并浏览了周围。我希望得到覆盖百分比报告。

我遗漏了一些非常基本的东西。请帮忙。

3 个答案:

答案 0 :(得分:8)

Tomcat将在关机时写入Jacoco文件。

答案 1 :(得分:5)

或者,您可以使用ant dump task

jacoco:dump address="server.example.com" reset="true" destfile="remote.exec"/>

但为了实现这一目标,您必须为java agent指定output mode tcpserver

-javaagent:[yourpath/]jacocoagent.jar=output=tcpserver,address=<host>,port=<port>,...

答案 2 :(得分:1)

6300是提供的默认端口。您可以更改端口,也可以查找可以使用netstat -an | grep "LISTEN"

监听的空闲端口