Статьи

JaCoCo Jenkins Plugin


В своем посте о JaCoCo и Maven я писал о проблемах использования плагина JaCoCo Maven в многомодульных проектах Maven из-за наличия одного отчета для каждого модуля отдельно вместо одного отчета для всех модулей, а также о том, как его можно исправить с помощью JaCoCo Ant Task .

В этой статье мы увидим, как использовать плагин JaCoCo Jenkins для достижения той же цели Ant Ant Tasks и получения общей статистики покрытия кода для всех модулей.

Первый шаг — установка  плагина JaCoCo Jenkins .

Перейдите в Jenkins -> Управление Jenkins -> Менеджер плагинов -> Доступно и найдите плагин JaCoCo

Следующим шагом, если это еще не сделано, является настройка вашего плагина JaCoCo Maven в родительский pom :

<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

И, наконец, пост-действие должно быть настроено на работу, ответственную за упаковку приложения. Обратите внимание, что в предыдущих файлах pom отчеты генерируются непосредственно перед выполнением цели пакета .

Перейдите в Configure -> Действия после сборки -> Добавить действие после сборки -> Записать отчет о покрытии JaCoCo .

Затем мы должны установить папки или файлы, содержащие XML- отчеты JaCoCo , которые используют предыдущий pom для ** / target / site / jacoco / jacoco * .xml , а также установить, когда мы считаем, что сборка работоспособна с точки зрения охвата.

Затем мы можем сохранить конфигурацию задания и запустить проект сборки.

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

В левом меню вы можете войти в Отчет о покрытии и увидеть покрытие кода каждого модуля в отдельности.

Кроме того, посещение главной страницы Jenkins даст вам хороший краткий обзор работы, когда вы наводите курсор мыши на иконку погоды, как показано на рисунке:

Имейте в виду, что этот подход к объединению файлов покрытия кода будет работать, только если вы используете Jenkins в качестве системы CIAnt Task  является более общим решением и может также использоваться с плагином JaCoCo Jenkins .

Мы продолжаем учиться,

Алекс.