Я пытаюсь настроить покрытие кода на моем локальном сервере Jenkins с Maven. Казалось бы, мои тесты не включаются в отчеты о покрытии.Недостаточное покрытие кода Кобертуры
У меня есть следующие в моем pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<check>
<haltOnFailure>false</haltOnFailure>
<totalLineRate>85</totalLineRate>
</check>
<formats>
<format>xml</format>
<format>html</format>
</formats>
</configuration>
<executions>
<execution>
<id>clean</id>
<phase>pre-site</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
<execution>
<id>instrument</id>
<phase>site</phase>
<goals>
<goal>instrument</goal>
<goal>cobertura</goal>
</goals>
</execution>
</executions>
</plugin>
и вот где я определяю тесты для запуска
<plugin>
<!-- Separates the unit tests from the integration tests. -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
<trimStackTrace>false</trimStackTrace>
</configuration>
<executions>
<execution>
<id>unit-tests</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*Test*.java</include>
</includes>
<excludes>
<exclude>**/*IT.java</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
И на моем сервере Дженкинс я иметь следующее: Дженкинс Конфигурация: название Sonar Сонар: Сонар локальный URL 3.5.1 сервер: http://local host:9000
Уровень проекта: публиковать Cobertura Coverate Доклад: XML шаблон отчета: **/цель/site.covertura/coverage.xml
Но когда я бегу либо задачу Maven "МВН Cobertura: Cobertura" или просмотреть сонар отчеты в Дженкинсе, весь охват составляет 0%, что заставляет меня думать, что мой модуль и интеграционные тесты не видны.
Это проблема с тем, как мой pom отделяет модульные и интеграционные тесты?
ОК, я заменил использование cobertura с помощью JaCoco (сделав его похожим на образец pom.xml) и попробовал работать с «mvn clean package», но теперь все тесты запускаются, но для Jenkins не создаются отчеты .exec для отображения. – sonoerin
Вы видите отчет в гидролокаторе? ваш плагин jacoco настроен на «\ * \ */\ * \ *. dump» (для путей к файлам exec?) – twillouer
Не уверен, что я сделал, но теперь он работает. Если я посмотрю на Sonar, а не на Jenkins, я могу увидеть количество тестов (unit & integration), которые запускались с охватом кода. Большое вам спасибо за вашу помощь. Вы публиковали больше, чем много учебников, которые я пытался работать! – sonoerin