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

dav*_*ohn 5 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
Run Code Online (Sandbox Code Playgroud)

我还添加了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%
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

小智 8

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


oer*_*ers 5

或者,您可以使用ant转储任务:

jacoco:dump address="server.example.com" reset="true" destfile="remote.exec"/>
Run Code Online (Sandbox Code Playgroud)

但要实现这一点,您必须output mode tcpserverjava代理指定.

-javaagent:[yourpath/]jacocoagent.jar=output=tcpserver,address=<host>,port=<port>,...
Run Code Online (Sandbox Code Playgroud)