2012-03-23 103 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"