
Функция Run with coverage в IntelliJ IDEA позволяет измерять, какие участки кода выполняются во время тестов. Это особенно важно для проектов на Java и Kotlin, где точное понимание покрытия тестами помогает находить непроверенные ветви и повышает качество кода.
Для активации покрытия достаточно выбрать конфигурацию запуска и нажать Run with Coverage. IntelliJ автоматически собирает данные о выполнении классов, методов и строк кода, создавая визуальный отчет прямо в редакторе. Цветовая маркировка позволяет сразу видеть незатронутые участки: красным выделяются пропущенные строки, зеленым – полностью выполненные.
Инструмент поддерживает сохранение отчетов в форматах HTML и XML, что упрощает интеграцию с CI/CD и внешними системами анализа покрытия. Кроме того, Run with coverage позволяет фильтровать библиотеки и вспомогательный код, чтобы сосредоточиться только на собственных модулях проекта.
При регулярном использовании этой функции можно не только выявлять недостатки тестов, но и настраивать автоматический запуск покрытия вместе со сборкой проекта. Это помогает поддерживать актуальность данных и экономит время на ручной проверке.
Run with coverage в IntelliJ IDEA: практическое руководство
Для запуска тестов с покрытием в IntelliJ IDEA выполните следующие шаги:
- Откройте проект и выберите нужную конфигурацию запуска.
- Нажмите Run with Coverage в панели инструментов или через контекстное меню.
- Дождитесь завершения тестов – IDE автоматически подсветит покрытые и непокрытые строки.
Цветовая маркировка кода позволяет быстро определить проблемные области:
- Зеленый: строка выполнена полностью.
- Желтый: строка выполнена частично.
- Красный: строка не выполнялась во время тестов.
Для точного анализа можно использовать фильтры покрытия:
- Исключение библиотек и стороннего кода.
- Выбор конкретных пакетов и модулей для отчета.
- Ограничение покрытия только тестируемыми классами.
Отчеты покрытия можно сохранять и экспортировать:
- HTML – для визуального анализа и публикации в документации.
- XML – для интеграции с CI/CD системами и сторонними инструментами анализа.
Регулярное использование Run with coverage помогает выявлять недостающие тесты, контролировать качество кода и автоматизировать проверку покрытия вместе с процессом сборки проекта.
Как включить Run with coverage для проекта

Для активации функции Run with coverage откройте IntelliJ IDEA и убедитесь, что проект полностью собран без ошибок. Функция доступна для любых конфигураций запуска, включая JUnit, TestNG и Java Application.
Чтобы включить покрытие для конкретной конфигурации:
- Перейдите в Run > Edit Configurations.
- Выберите нужную конфигурацию или создайте новую.
- Установите галочку Enable coverage или используйте кнопку Run with Coverage в панели инструментов.
Для Maven и Gradle проектов убедитесь, что IntelliJ правильно распознает исходные каталоги и тестовые пакеты. Некорректная структура может привести к отсутствию подсветки покрытия в редакторе.
После запуска тестов с покрытием IDE автоматически создаст отчет с цветовой маркировкой строк и методов. Зеленый цвет означает выполненный код, желтый – частично выполненный, красный – пропущенные участки.
Для проектов с большим количеством модулей рекомендуется создать отдельные конфигурации Run with coverage для каждого модуля, чтобы получать точные отчеты и избежать смешивания данных.
Настройка конфигураций запуска с покрытием

Для получения точного отчета покрытия в IntelliJ IDEA необходимо правильно настроить конфигурации запуска. Это позволяет контролировать, какие классы и методы будут учитываться, а какие – исключены.
Процесс настройки включает следующие шаги:
- Перейдите в Run > Edit Configurations.
- Выберите существующую конфигурацию или создайте новую, указав тип теста (JUnit, TestNG, Java Application).
- В разделе Code Coverage задайте, какие пакеты включать и исключать.
- Выберите тип отчета: per class, per method или per line.
Для наглядности можно использовать следующую таблицу настроек:
| Параметр | Описание | Рекомендация |
|---|---|---|
| Package Inclusion | Пакеты, для которых будет собираться покрытие | Указывайте только модули с исходным кодом проекта |
| Package Exclusion | Библиотеки и сторонний код, исключаемые из отчета | Исключайте зависимости и утилитные классы |
| Coverage runner | Тип сбора покрытия: IntelliJ или JaCoCo | Для интеграции с CI/CD выбирайте JaCoCo |
| Output format | Формат отчета: HTML, XML или CSV | HTML для визуального анализа, XML для автоматизации |
После сохранения конфигурации можно запускать тесты с покрытием через кнопку Run with Coverage, чтобы сразу видеть результаты в редакторе и в виде отчетов.
Выбор типа отчета покрытия: классы, методы, строки

IntelliJ IDEA позволяет настраивать уровень детализации отчета покрытия. Доступны три режима: классы, методы и строки. Каждый из них подходит для разных целей анализа тестов.
Классы: отображает, какие классы были выполнены хотя бы частично. Используется для быстрого обзора охвата проекта, когда важен общий процент покрытия по модулям.
Методы: показывает, какие методы в классах были вызваны во время тестов. Полезно для выявления пропущенных функциональных блоков без детального анализа каждой строки.
Строки: фиксирует выполнение каждой строки кода. Это наиболее точный уровень, позволяющий обнаружить полностью непокрытые участки и скрытые ветви логики.
Выбор режима производится в настройках конфигурации запуска в разделе Code Coverage. Для модульного тестирования рекомендуется использовать методы, а для интеграционного тестирования и анализа сложных алгоритмов – строки.
Комбинирование разных уровней отчетов позволяет одновременно контролировать общую картину покрытия и детали выполнения критических участков кода.
Интерпретация цветовой маркировки покрытия в редакторе
IntelliJ IDEA использует цветовую маркировку для визуального отображения покрытия кода после запуска Run with coverage. Цвета помогают быстро определить степень выполнения строк и методов.
Зеленый цвет обозначает полностью выполненный код. Все инструкции строки или метода были вызваны хотя бы один раз во время теста.
Желтый цвет указывает на частичное выполнение. Например, метод был вызван, но некоторые ветви условных операторов остались непроверенными.
Красный цвет показывает полностью пропущенный код. Строки и методы с этой маркировкой не участвовали ни в одном тесте.
Для точного анализа рекомендуется перемещать курсор по подсвеченным строкам: IDE отображает информацию о том, какие ветви кода и условия были выполнены. При необходимости можно использовать фильтры покрытия для исключения библиотек и вспомогательных классов, чтобы цветовая маркировка отражала только собственный код проекта.
Регулярный контроль цветовой маркировки помогает выявлять непокрытые участки, уточнять тестовые сценарии и оптимизировать тестовое покрытие без избыточного запуска всех тестов.
Сравнение покрытия нескольких запусков тестов

IntelliJ IDEA позволяет сохранять отчеты покрытия для разных запусков и сравнивать их, чтобы отслеживать изменения в тестовом покрытии.
Пошаговое сравнение выглядит следующим образом:
- Запустите тесты с покрытием и сохраните отчет через File > Save Coverage Data.
- Выполните изменения в коде или добавьте новые тесты и снова запустите Run with coverage.
- С помощью панели Coverage загрузите оба отчета для визуального сравнения.
Сравнение позволяет выявить следующие изменения:
- Новые участки кода, которые стали покрытыми после добавления тестов.
- Строки или методы, которые перестали выполняться из-за рефакторинга или изменений в логике.
- Общие тенденции по увеличению или уменьшению процентного покрытия классов и методов.
Для удобства анализа можно экспортировать оба отчета в HTML или XML и использовать сторонние инструменты для детального сравнения, например, объединение отчетов или построение графиков покрытия по модулям.
Регулярное сравнение нескольких запусков помогает контролировать прогресс тестирования и быстро выявлять участки, которые нуждаются в дополнительном покрытии.
Использование фильтров для исключения библиотек и тестов

В IntelliJ IDEA можно настроить фильтры покрытия, чтобы исключать сторонние библиотеки и тестовые классы, которые не влияют на основной код проекта.
Для настройки фильтров выполните следующие шаги:
- Откройте Run > Edit Configurations и выберите конфигурацию с включенным Run with coverage.
- Перейдите в раздел Code Coverage и нажмите Configure filters.
- Добавьте пакеты или классы, которые необходимо исключить из анализа, например, библиотеки зависимостей или утилитные тестовые классы.
- Сохраните конфигурацию и запустите тесты с покрытием.
Исключение стороннего кода позволяет:
- Фокусироваться на собственных модулях проекта.
- Сократить время выполнения тестов с покрытием.
- Получать более точный процент покрытия и корректные отчеты для CI/CD.
Фильтры также полезны при работе с большими проектами, где подключены многочисленные зависимости. Настройка исключений помогает избегать искажения показателей покрытия и упрощает анализ незавершенных участков кода.
Сохранение и экспорт отчетов покрытия

После выполнения тестов с Run with coverage IntelliJ IDEA позволяет сохранять и экспортировать отчеты для дальнейшего анализа и интеграции с другими инструментами.
Для сохранения отчета выполните следующие шаги:
- Откройте вкладку Coverage в нижней панели IDE.
- Нажмите кнопку Export to File и выберите формат отчета: HTML или XML.
- Укажите директорию для сохранения и при необходимости переименуйте файл для удобной идентификации.
HTML-отчеты позволяют визуально просматривать покрытие в браузере с подсветкой строк и методов, а XML-отчеты используются для интеграции с CI/CD системами и сторонними анализаторами покрытия, такими как JaCoCo или SonarQube.
Регулярное сохранение отчетов помогает отслеживать динамику покрытия, сравнивать результаты разных запусков и документировать прогресс тестирования по модулям проекта.
При работе с крупными проектами рекомендуется использовать отдельные отчеты для каждого модуля, чтобы избежать смешивания данных и упростить анализ конкретных участков кода.
Автоматизация запуска Run with coverage при сборке проекта

Для постоянного контроля покрытия тестами в IntelliJ IDEA можно настроить автоматический запуск Run with coverage при сборке проекта. Это позволяет получать актуальные данные без ручного запуска тестов.
Для автоматизации выполните следующие шаги:
- Создайте конфигурацию тестирования с включенным Run with coverage.
- В настройках проекта или модуля перейдите в раздел Build Tools и выберите используемый инструмент сборки: Maven или Gradle.
- Добавьте выполнение тестов с покрытием в фазу сборки:
- Для Maven – в секцию test плагина maven-surefire-plugin.
- Для Gradle – в таск test добавьте использование плагина JaCoCo или IntelliJ Coverage Runner.
- Сохраните настройки и выполните сборку проекта – тесты с покрытием запустятся автоматически.
Автоматизация позволяет:
- Сохранять актуальные отчеты покрытия без ручного вмешательства.
- Обеспечивать интеграцию с CI/CD и отслеживать изменения покрытия после каждого коммита.
- Выявлять непокрытые участки кода сразу после сборки, что ускоряет исправление недостатков тестов.
Рекомендуется периодически проверять корректность фильтров и отчетов после обновлений зависимостей или изменения структуры проекта, чтобы данные покрытия оставались точными.
Вопрос-ответ:
Как запустить тесты с покрытием в IntelliJ IDEA для всего проекта?
Для запуска тестов с покрытием откройте проект в IntelliJ IDEA и выберите конфигурацию тестов, например JUnit или TestNG. Нажмите Run with Coverage на панели инструментов. IDE соберет данные о выполнении кода и выделит строки с разной степенью выполнения. Зеленым будут отмечены полностью выполненные строки, желтым — частично выполненные, красным — пропущенные. Отчет можно просматривать в панели Coverage и при необходимости сохранить для анализа.
Можно ли исключить библиотеки и вспомогательные тесты из отчета покрытия?
Да, в IntelliJ IDEA есть функция фильтров. Перейдите в Run > Edit Configurations, выберите конфигурацию с покрытием и в разделе Code Coverage нажмите Configure filters. Добавьте пакеты или классы, которые нужно исключить. Это позволяет сосредоточиться на собственных модулях проекта и получать более точные показатели покрытия.
Как выбрать между отчетом по классам, методам и строкам?
Выбор зависит от цели анализа. Отчет по классам показывает, какие классы были выполнены хотя бы частично, полезно для общей оценки покрытия проекта. Методический отчет показывает вызванные методы и помогает выявлять пропущенные функциональные блоки. Строчный отчет фиксирует выполнение каждой инструкции и нужен для анализа сложных алгоритмов или выявления полностью непокрытых ветвей. Настройка уровня детализации выполняется в конфигурации запуска в разделе Code Coverage.
Как сохранить и использовать отчеты покрытия вне IntelliJ IDEA?
После запуска тестов с покрытием откройте вкладку Coverage и нажмите Export to File. Выберите формат HTML для визуального анализа или XML для интеграции с CI/CD системами. HTML позволяет просматривать покрытие с цветовой подсветкой в браузере, XML подходит для автоматической обработки и построения отчетов сторонними инструментами, такими как JaCoCo или SonarQube.
Можно ли настроить автоматический запуск тестов с покрытием при сборке проекта?
Да, автоматизация возможна через настройки сборки Maven или Gradle. Создайте конфигурацию с включенным Run with coverage и добавьте ее выполнение в фазу тестирования сборки. В Maven это делается через maven-surefire-plugin, в Gradle — через таск test с плагином JaCoCo. Автоматический запуск позволяет постоянно получать актуальные данные покрытия и отслеживать изменения после каждой сборки.
Как сравнивать отчеты покрытия разных запусков тестов в IntelliJ IDEA?
IntelliJ IDEA позволяет сохранять данные покрытия для каждого запуска тестов и затем загружать несколько отчетов для сравнения. Сначала выполните тесты с включенным Run with coverage и сохраните отчет через File > Save Coverage Data. После внесения изменений в код или добавления новых тестов запустите тесты снова и сохраните новый отчет. В панели Coverage можно загрузить оба файла и увидеть различия: новые строки, которые стали выполненными, участки, которые перестали покрываться, и общее изменение процентного покрытия. Такой подход помогает отслеживать прогресс тестирования и выявлять участки кода, на которые необходимо добавить тесты, а также проверять, что изменения в проекте не снизили покрытие.
