2012-03-23 2 views
5

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

Я теперь переместили код на следующую структуру каталогов jacoco.exec /бен/ /coveragereport

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

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

ответ

8

Tomcat напишет файл Jacoco при выключении.

5

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

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

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

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

Я пытаюсь использовать предложенный способ (tcpserver), я использую JAcoco 0.6.2+. Я не вижу, чтобы какой-либо сервер привязывался к порту по умолчанию 6300. Когда я запускаю команду dump, я получаю «Невозможно сбрасывать данные о покрытии» с помощью «Отказано в соединении», потому что на этом порту ничего не работает. Это ошибка, или я чего-то не хватает? –

+0

@MarcellodeSales Я тоже сталкиваюсь с этой проблемой ... где я могу ошибаться? –

+0

@MarcellodeSales это давно, но важно иметь output = tcpserver. и, возможно, настройте свои собственные порты по адресу = , port = oers

1

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