jacoco + tomcat = jacoco.exec, отчет о нулевом покрытии. Помогите. - PullRequest
5 голосов
/ 23 марта 2012

У меня есть веб-приложение, развернутое на Tomcat. Прежде чем углубляться в подробности, позвольте мне изложить версии.

Версии: 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 и запускаю свои веб-приложения, как и ожидалось, появляется файл C: \ jacoco.exec.

Я переместил код в следующую структуру каталогов jacoco.exec / Бен / / охват отчета

Теперь я использовал класс ReportGenerator из http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java. У меня есть куча отчетов в формате HTML в каталоге / rangereport. Однако весь код показывается как не тронутый. Хотя после того, как я запустил Tomcat, я пошел к http://localhost:/ и просмотрел. Я надеялся получить процент покрытия.

Мне не хватает чего-то очень простого. Помогите, пожалуйста.

Ответы [ 3 ]

8 голосов
/ 12 апреля 2012

Tomcat запишет файл Jacoco при завершении работы.

5 голосов
/ 17 апреля 2012

В качестве альтернативы вы можете использовать задачу ant dump :

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

Но чтобы это работало, вы должны указать output mode tcpserver для java агента .

-javaagent:[yourpath/]jacocoagent.jar=output=tcpserver,address=<host>,port=<port>,...
1 голос
/ 04 октября 2013

6300 - это порт по умолчанию. Вы можете изменить порт или искать свободные порты, которые можно прослушивать, используя netstat -an | grep "LISTEN"

...