2012-03-23 102 views
5

我在Tomcat上部署了一个Web应用程序。在进一步了解细节之前,我先说明一下版本。jacoco + tomcat = jacoco.exec,报告零覆盖率。帮帮我。

版本: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.2012\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:/并浏览过。我希望能得到报道的覆盖率。

我很想念一些非常基本的东西。请帮助。

回答

8

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

5

或者您可以使用ant dump task

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

但对于工作,你必须指定output mode tcpserverjava agent

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

我试图使用建议的方式(tcpserver),我正在使用JAcoco 0.6.2+。我没有看到绑定到默认端口6300的任何服务器。当我运行dump命令时,由于该端口上没有运行任何内容,因此“无法转储覆盖率数据”和“拒绝连接”。这是一个错误还是我错过了什么? – 2013-04-30 23:30:06

+0

@MarcellodeSales我也遇到了这个问题......我可能被误解了吗? – 2015-10-21 22:06:06

+0

@MarcellodeSales很久以前,但是定义output = tcpserver是至关重要的。也许设置自己的端口通过地址= ,端口= oers 2015-10-22 06:42:51

1

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