2017-02-09 10 views
-1

Я хочу получить отчет о покрытии кода (или поток контроллера отслеживания приложения) при выполнении какого-либо сценария в реальном приложении, то есть во время работы приложения на сервере, поэтому я уже судил официальный Jacoco documentation и сделал, как залежиКак получить покрытие кода инструментария JaCoCo при выполнении webApplication на сервере

в качестве первого шага я попытался связать jacoco агента к приложению работает порт

export MAVEN_OPTS=-javaagent:/home/user/.m2/repository/org/jacoco/org.jacoco.agent/0.7.4.201502262128/org.jacoco.agent-0.7.4.201502262128-runtime.jar=includes=*,output=tcpserver,port=6300,address=*,dumponexit=true 

тогда я начал сервер и выполняются несколько сценариев тестирования, что Я также попросил jacoco получить дамп, выполнив followin Команда г

mvn jacoco:dump 

, когда я выполнил выше команду сначала он показал, как java.net.BindException: Address already in use то напечатанный в залежи

[INFO] Connecting to localhost/127.0.0.1:6300 

Когда я остановил сервер jacoco.exec был создан в известном месте есть после того как я попросил создать отчет о jacoco, выполнив следующую команду:

mvn jacoco:report 

Наконец-то я получил отчет, но когда я открыл страницу index.html, он показал покрытие .

вы можете воспроизвести мои трудности со следующими примерами проектов Spring MVC

пожалуйста, загрузите проект Spring MVC с https://github.com/mkyong/spring4-mvc-ajax-example из Github

В моем случае я использую сервер 8.x WildFly запустить проект и добавить следующие зависимости от загруженных проектов pom.xml

maven-surefire-plugin of 2.19.1 version 
jacoco-maven-plugin of 0.7.4.201502262128 version 
junit of 4.12 version 

Тогда чистый и построить проект, используя следующие команды.

mvn clean install 

раз это делается получить .war файл из целевой папки проекта и держать внутри wildfly serverwildfly-9.0.0.CR2/standalone/deployments/ папку

После .war развертывается идти в /wildfly-9.0.0.CR2/bin/ папку и выполнить/запустить файл ./standalone.sh или в зависимости от платформы, которую вы можете запустить .dat/.sh файлу

когда проект развернут и запущен сервер выполнить следующую команду

mvn jacoco:dump 

он отображается как прослушивания/подключен к localhost/127.0.0.1:6300

Затем выполнить несколько тестовых сценариев и выполнить следующую команду Maven

mvn jaococ:report 

Наконец отчет будет сгенерирован с охватом 0% !.

Скачал проект может быть найден в MKyong website

Пожалуйста, помогите мне, чтобы получить отчет покрытия кода и любая помощь будет оценена.

ответ

1

JaCoCo требует тех же файлов классы для генерации отчетов, которые были использованы во время выполнения, так

  • если отчет полностью пуст, то классы не были предусмотрены
  • если отчет содержит классы, но их охват 0%, то они не совпадают классы, которые были использованы во время выполнения - это описано вместе с другой соответствующей информацией в JaCoCo документации на странице http://www.jacoco.org/jacoco/trunk/doc/classids.html

и в любом случае следует проверить наличие предупреждений в журнале.

Update для обновления вопрос

Вот что я сделал:

  • скачали и распаковали JaCoCo 0.7.9 в /tmp/jacoco/jacoco-0.7.9
  • загружены и распакованы Wildfly 9.0.0.CR2 в /tmp/jacoco/wildfly-9.0.0.CR2
  • клонированный https://github.com/mkyong/spring4-mvc-ajax-example в /tmp/jacoco/spring4-mvc-ajax-example и построен как mvn verify
  • копированов /tmp/jacoco/wildfly-9.0.0.CR2/standalone/deployments
  • Wildfly начал как JAVA_OPTS=-javaagent:/tmp/jacoco/jacoco-0.7.9/lib/jacocoagent.jar=output=tcpserver ./standalone.sh и получил достаточно времени, чтобы развернуть приложению
  • в каталоге /tmp/jacoco/spring4-mvc-ajax-example выполненных mvn org.jacoco:jacoco-maven-plugin:0.7.9:dump org.jacoco:jacoco-maven-plugin:0.7.9:report (обратите внимание, что версия используемого агента соответствует версии jacoco-Maven-плагин), так что он создал /tmp/jacoco/spring4-mvc-ajax-example/jacoco.exec и сообщить /tmp/jacoco/spring4-mvc-ajax-example/site/jacoco: report
  • открыл http://localhost:8080/spring4-mvc-maven-ajax-example-1.0-SNAPSHOT/ и сделал некоторые действия
  • казнены mvn org.jacoco:jacoco-maven-plugin:0.7.9:dump org.jacoco:jacoco-maven-plugin:0.7.9:report снова, чтобы получить обновленный отчет: updated report
+0

спасибо за ответ, я получаю отчет, и он содержит классы, но покрытие кода 0%, пожалуйста, вы можете предложить способ соответствия классам, которые использовались во время выполнения, или, пожалуйста, скажите мне, как я могу получить классы времени выполнения –

+0

Я думаю, что jacoco должен связываться с JVM/сервером, чтобы получить классы времени выполнения, или, пожалуйста, скажите мне, как я могу отслеживать поток контроллера во время выполнения. –

+0

Файлы класса класса RajeshHatwar, которые используются во время выполнения на сервере, должны быть точно такими же, которые используются во время отчета генерация буквально – Godin

 Смежные вопросы

  • Нет связанных вопросов^_^