Инструмент, позволяющий определять правила покрытия кода для каждого файла. Установите минимальный порог покрытия для каждого файла и настройте собственное минимальное покрытие для существующих файлов, если текущее тестовое покрытие еще не соответствует стандартам. Ошибка проверки будет выведена в формате checkstyle, что позволит импортировать ее в инструменты ci/cd.
Стандартный расчет покрытия рассчитывается по всей кодовой базе. Если, например, порог составляет 80 %, а уровень одного файла опускается ниже 80 %, вы никогда этого не заметите, потому что общее покрытие изменилось с 87,6 % до 87,4 %. Этот пакет гарантирует, что этого больше не произойдет, и покрытие рассчитывается индивидуально для каждого файла.
Входные данные: clovercover.xml.
Вывод: checkstyle или gitlab.
Включите библиотеку как зависимость в свой проект с помощью:
composer require "digitalrevolution/phpunit-file-coverage-inspection" --dev
Файл: phpfci.xml
<?xml версия="1.0" кодировка="UTF-8"?> <phpfci xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="vendor/digitalrevolution/phpunit-file-coverage-inspection/resources/phpfci.xsd"min-coverage= "100"allow-uncovered-methods="false"> <custom-coverage><!-- правило покрытия на основе каталога --><directory path="src/Lib/" min="90"/><!-- подкаталоги будут заменять правило родительского каталога --><directory path ="src/Lib/Config/" min="100"/><!-- правило файла всегда будет иметь приоритет над правилом каталога --><file path="src/Lib/Config/File.php" min="80 "/> </custom-coverage> <!-- если для параметраallow-uncovered-methods установлено значение false, переопределите это поведение для определенных файлов: --><ignore-uncovered-methods> <file path="src/Command/ExampleCommand.php"/> </ignore-uncovered-methods> </phpfci>
Вариант | Необходимый | По умолчанию | Описание |
---|---|---|---|
минимальное покрытие | да | - | Минимальное глобальное покрытие |
разрешить непокрытые методы | нет | ЛОЖЬ | Все методы должны иметь хотя бы некоторое покрытие. |
или сгенерируйте файл конфигурации на основе существующих результатов покрытия
phpvendor/bin/phpfci baseline --baseDir/home/ci/workspacecoverage.xml ./phpfci.xml
Базовый каталог будет вычтен из путей к файлам в файле покрытия.xml.
Формат контрольного стиля:
phpvendor/bin/phpfci проверить покрытие.xml --reportCheckstyle=reports/checkstyle.xml
Формат Гитлаба:
phpvendor/bin/phpfci проверить покрытие.xml --reportGitlab=reports/gitlab.errors.json
Формат Gitlab в файл и вывод текста на стандартный вывод:
phpvendor/bin/phpfci проверить покрытие.xml --reportGitlab=reports/gitlab.errors.json --reportText
Текстовый формат в стандартный вывод:
phpvendor/bin/phpfci проверить покрытие.xml phpvendor/bin/phpfci проверяет покрытие1.xml покрытие2.xml
phpvendor/bin/phpfci проверить покрытие.xml --reportText
Вариант | Ценности | Описание |
---|---|---|
argument 1 | inspect , baseline | команда для выполнения. |
argument 2 [ argument 3 ]... | coverage.xml [ coverage2.xml ] | входные файлы покрытия клевера phpunit. |
--reportGitlab=[<file>] | путь к файлу или стандартный вывод, если он отсутствует | файл (или стандартный вывод), в который нужно записать формат gitlab. |
--reportCheckstyle=[<file>] | путь к файлу или стандартный вывод, если он отсутствует | файл (или стандартный вывод), в который нужно записать формат контрольного стиля. |
--reportText=[<file>] | путь к файлу или стандартный вывод, если он отсутствует | файл (или стандартный вывод), в который нужно записать формат контрольного стиля. |
--config=<path-to-file> | phpfci.xml | путь к файлу конфигурации. |
--baseDir=<path> | по умолчанию — каталог выходного файла | Корневой каталог проекта будет использоваться для создания относительных путей. |
--exit-code-on-failure | - | Установите код выхода на 1 при возникновении сбоев. |
Примечание. Если --reportGitlab
, --reportCheckstyle
или --reportText
не установлен, по умолчанию используется значение --reportText=php://stdout
Третий обязательный аргумент и --report
были удалены и должны быть заменены на: --reportGitlab=<file>
, --reportCheckstyle=<file>
или --reportText=<file>
В компании 123inkt (часть Digital Revolution BV) каждый день более 50 специалистов по разработке работают над улучшением нашей внутренней ERP-системы и наших нескольких магазинов. Хотите присоединиться к нам? Ищем разработчиков.