Рубрики
Без рубрики

Покрытие кода микросервисов с помощью Jacoco

Частое развертывание – это огромный шаг в архитектуре микросервисов. Если у вас есть набор тестов, которые… Помеченные микросервисами, java, jacoco.

Частое развертывание – это огромный шаг в архитектуре Микросервисов . Если у вас есть набор тестов, которые выполняются перед каждым развертыванием и ставят зеленую галочку для надежного развертывания. Должен ли я доверять автоматическим тестам или нет? один из способов принять решение – проверить покрытие кода. Jacoco помогает получить подробную информацию о покрытии кода.

Jacoco – это библиотека java, которую вы можете использовать в своем приложении, чтобы получить подробную информацию о покрытии кода. Агент Jacoco устанавливается на вашу виртуальную машину, и этот агент прослушивает показатели jmx и выдает сведения о покрытии. Результатом может быть файл или сокет. Мы можем настроить путь к файлу, и когда jvm запускается, он блокирует файл, а когда jvm останавливает его, записывает данные выполнения в файл Мы можем настроить путь к файлу, и когда jvm запускается, он блокирует файл, а когда jvm останавливает его, записывает данные выполнения в файл . Мы можем передать этот файл для статического анализа кода, такого как Sonar, и он отобразит результаты, или использовать плагин jacoco reports для создания отчетов. Мы можем передать этот файл для статического анализа кода, такого как Sonar, и он отобразит результаты, или использовать плагин jacoco reports для создания отчетов.

На приведенной выше диаграмме показаны следующие шаги

1) Дженкинс работает на виртуальной машине, которая имеет свою собственную jvm JVM-A , которая создает приложение и развертывает его в контейнере на удаленном хосте.

2) Как только приложение будет запущено в контейнере на виртуальной машине с jvm JVM-B , где необходимо установить и настроить агент jacoco. Агент Jacoco на JVM-B выдает данные выполнения в файл (jacoco.exec) в соответствии с настройками.

3) Буквально шагом 3 может быть все, что понимает файл, созданный на шаге 2, и генерирует отчеты. Sonar делает это, если мы указываем путь к файлу. В Maven есть плагин jacoco:report , который понимает файл jacoco.exec и генерирует несколько приятных отчетов пользовательского интерфейса.

Как это сделать

У меня есть пример

БхаргавМодепалли/Весенние ботинки-jacoco- Пример

Сгенерируйте файл данных выполнения

java:\Workspace\Github\Spring-Boot-Jacoco-Example\target\jacoco.exec -jar Spring-Boot-Jacoco-Example-0.0.1-SNAPSHOT.jar

javaagent: C:\Bhargav\jacocoagent.jar: указывает на место, где находится jar jacocoagent.

добавить: указание агенту jacoco добавлять ли новые показатели к старым показателям, если есть какие-либо старые показатели

include: * означает, что включает все классы, мы можем ограничить их определенным пакетом

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

destfile: расположение файла, в который агент jacoco записывает данные выполнения

Следующий файл будет сгенерирован по заданному пути к файлу destfile приведенной выше команды.

Создание отчетов из файла данных выполнения

Чтобы сделать этот файл читаемым, мы можем использовать плагин maven с именем jacoco-maven-plugin

<плагин> <Идентификатор группы>org.jacoco группы> группы> jacoco-maven-плагин <версия>0.8.3 <казни> <казнь> <цели> <цель>отчет <конфигурация> <Файл данных>${project.build.directory}/jacoco.exec данных> данных> ${basedir}/target/jacoco

запускаем его из cmd

mvn org.jacoco:jacoco-maven-plugin:0.8.3:отчет

Оригинал: “https://dev.to/bhargavm/microservices-code-coverage-with-jacoco-4a36”