Spec-Zone.ru › PHPUnit

Файл конфигурации XML

Элемент <phpunit>

Атрибут backupGlobals

Допустимые значения: true или false (по умолчанию: false)

PHPUnit может при необходимости сохранять все глобальные и суперглобальные переменные перед каждым тестом и восстанавливать их после каждого теста.

Этот атрибут настраивает данную операцию для всех тестов. Эту настройку можно переопределить с помощью атрибута BackupGlobals на уровне класса теста и метода теста.

Атрибут backupStaticProperties

Допустимые значения: true или false (по умолчанию: false)

PHPUnit может при необходимости сохранять все статические свойства во всех объявленных классах перед каждым тестом и восстанавливать их после каждого теста.

Этот атрибут настраивает данную операцию для всех тестов. Эту настройку можно переопределить с помощью атрибута BackupStaticProperties на уровне класса теста и метода теста.

Атрибут bootstrap

Этот атрибут задает загрузочный скрипт, который запускается перед выполнением тестов. Обычно этот скрипт только регистрирует функцию обратного вызова автозагрузчика, используемую для загрузки тестируемого кода.

Атрибут cacheDirectory

Этот атрибут задает каталог, в котором PHPUnit хранит данные между запусками набора тестов. В этом каталоге хранятся следующие данные:

  • test-results: результаты предыдущего запуска набора тестов (например, используются для переупорядочивания тестов на основе предыдущих дефектов или длительности; см. ниже)

  • code-coverage: результаты статического анализа тестируемого кода и кода тестов (записываются только при запросе отчета о покрытии кода; значительно повышают производительность анализа покрытия кода при последующих запусках)

Атрибут cacheResult

Допустимые значения: true или false (по умолчанию: true)

Этот атрибут задает сохранение результатов тестов в файле кэша test-results. Это необходимо для упорядочивания тестов по дефектам, длительности или размеру с помощью атрибута executionOrder (см. Атрибут executionOrder).

Используйте --do-not-cache-result в командной строке или установите для этого атрибута значение false, чтобы запретить запись файла кэша test-results.

Атрибут colors

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли использовать цвета в выводе PHPUnit.

Установка значения true для этого атрибута эквивалентна использованию параметра CLI --colors=auto.

Установка значения false для этого атрибута эквивалентна использованию параметра CLI --colors=never.

Атрибут columns

Допустимые значения: целое число или строка max (по умолчанию: 80)

Этот атрибут задает количество столбцов для вывода сведений о ходе выполнения.

Если в качестве значения указано max, количество столбцов будет равно максимальному числу столбцов текущего терминала.

Атрибут controlGarbageCollector

Допустимые значения: true или false (по умолчанию: false)

Когда среда выполнения PHP автоматически выполняет сборку мусора, это может происходить во время подготовки (настройки фикстур) теста или во время его выполнения. Это может отрицательно сказаться на производительности выполнения тестов.

Настройка controlGarbageCollector="true" приводит к следующим последствиям:

  • Отключение автоматической сборки мусора с помощью gc_disable() перед запуском первого теста

  • Запуск сборки мусора с помощью gc_collect_cycles() перед запуском первого теста

  • Запуск сборки мусора с помощью gc_collect_cycles() после каждого n-го теста

  • Запуск сборки мусора с помощью gc_collect_cycles() после выполнения последнего теста

  • Включение автоматической сборки мусора с помощью gc_enable() после выполнения последнего теста

Количество тестов, выполняемых до запуска сборки мусора, задается параметром numberOfTestsBeforeGarbageCollection (см. ниже).

Атрибут numberOfTestsBeforeGarbageCollection

Допустимые значения: целое число (по умолчанию: 100)

Задает количество тестов, выполняемых до запуска сборки мусора (см. выше).

Атрибут requireCoverageMetadata

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, будет ли тест помечен как рискованный (см. Непреднамеренно покрытый код), если в нем не указан с помощью атрибута код, который он должен покрывать.

Атрибут requireSealedMockObjects

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, будет ли тест помечен как рискованный (см. Непреднамеренно покрытый код), если созданные им объекты-заглушки не будут запечатаны (см. Требование запечатывать объекты-заглушки).

Атрибут processIsolation

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли запускать каждый тест в отдельном процессе PHP для повышения изоляции.

Атрибут stopOnDefect

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первой ошибки, сбоя, предупреждения или рискованного теста.

Атрибут stopOnError

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первой ошибки.

Атрибут stopOnFailure

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первого сбоя.

Атрибут stopOnWarning

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первого предупреждения теста.

Атрибут stopOnRisky

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первого рискованного теста.

Атрибут stopOnDeprecation

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первого теста, вызвавшего устаревание (E_DEPRECATED, E_USER_DEPRECATED или устаревание PHPUnit).

Атрибут stopOnNotice

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первого теста, вызвавшего уведомление (E_STRICT, E_NOTICE или E_USER_NOTICE).

Атрибут stopOnSkipped

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первого пропущенного теста.

Атрибут stopOnIncomplete

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли останавливать выполнение набора тестов после первого незавершенного теста.

Атрибут failOnAllIssues

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если возникла какая-либо проблема.

Обратная совместимость

Обратите внимание: если установить для failOnAllIssues значение true, вы соглашаетесь считать причиной сбоя дополнительные проблемы, которые в будущих версиях PHPUnit будут подпадать под действие этой настройки. Это не считается нарушением обратной совместимости, а является ожидаемым поведением данной настройки.

Атрибут failOnEmptyTestSuite

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если настроенный набор тестов пуст.

Атрибут failOnWarning

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если все тесты прошли успешно, но при этом есть тесты с предупреждениями.

Атрибут failOnRisky

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если все тесты прошли успешно, но некоторые были помечены как рискованные.

Атрибут failOnDeprecation

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если все тесты прошли успешно, но некоторые из них вызвали устаревание (E_DEPRECATED или E_USER_DEPRECATED).

Атрибут failOnPhpunitDeprecation

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если все тесты прошли успешно, но возникли устаревания PHPUnit.

Атрибут failOnPhpunitNotice

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если все тесты прошли успешно, но возникли уведомления PHPUnit.

Атрибут failOnNotice

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если все тесты прошли успешно, но некоторые из них вызвали уведомление (E_STRICT, E_NOTICE или E_USER_NOTICE).

Атрибут failOnSkipped

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если все тесты прошли успешно, но некоторые из них были помечены как пропущенные.

Атрибут failOnIncomplete

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли исполнитель тестов PHPUnit завершаться с кодом оболочки, указывающим на сбой, если все тесты прошли успешно, но некоторые из них были помечены как незавершенные.

Атрибут beStrictAboutChangesToGlobalState

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли PHPUnit помечать тест как рискованный, если тестируемый код (или код теста) изменяет глобальное состояние.

Атрибут beStrictAboutOutputDuringTests

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли PHPUnit помечать тест как рискованный, если тестируемый код (или код теста) выводит данные.

Атрибут beStrictAboutTestsThatDoNotTestAnything

Допустимые значения: true или false (по умолчанию: true)

Этот атрибут задает, должен ли PHPUnit помечать тест как рискованный, если не выполняются проверки (также учитываются ожидания).

Атрибут beStrictAboutCoverageMetadata

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, должен ли PHPUnit помечать тест как рискованный, если он выполняет код, который не указан с помощью атрибута как подлежащий покрытию или использованию.

Атрибут requireCoverageContribution

Допустимые значения: true или false (по умолчанию: false)

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

Атрибут enforceTimeLimit

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли применять ограничения по времени.

Атрибут defaultTimeLimit

Допустимые значения: целое число (по умолчанию: 0)

Этот атрибут задает ограничение по времени по умолчанию (в секундах).

Атрибут diffContext

Допустимые значения: целое число (по умолчанию: 3)

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

Атрибут timeoutForSmallTests

Допустимые значения: целое число (по умолчанию: 1)

Этот атрибут задает ограничение по времени для тестов, помеченных атрибутом Small (в секундах).

Атрибут timeoutForMediumTests

Допустимые значения: целое число (по умолчанию: 10)

Этот атрибут задает ограничение по времени для тестов, помеченных атрибутом Medium (в секундах).

Атрибут timeoutForLargeTests

Допустимые значения: целое число (по умолчанию: 60)

Этот атрибут задает ограничение по времени для тестов, помеченных атрибутом Large (в секундах).

Атрибут defaultTestSuite

Этот атрибут задает имя набора тестов по умолчанию.

Атрибут stderr

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли PHPUnit выводить данные в stderr вместо stdout.

Атрибут reverseDefectList

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить неуспешные тесты в обратном порядке.

Атрибут registerMockObjectsFromTestArgumentsRecursively

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли рекурсивно проверять массивы и графы объектов, передаваемые от одного теста другому с помощью атрибутов Depends*, на наличие объектов-заглушек.

Атрибут extensionsDirectory

Если используется phpunit.phar, этот атрибут можно использовать для задания каталога, из которого все файлы *.phar будут загружаться как расширения исполнителя тестов PHPUnit.

Атрибут executionOrder

Допустимые значения: default, defects, depends, no-depends, duration-ascending, duration-descending, random, reverse, size-ascending, size-descending (по умолчанию: default)

Можно указать несколько значений. Их необходимо разделять с помощью ,.

Этот атрибут задает порядок выполнения тестов.

Основные способы упорядочивания:

  • default: в порядке обнаружения тестов PHPUnit (кэш результатов не используется)

  • defects: по дефектам (ошибка, сбой, предупреждение, незавершенный, рискованный, пропущенный, неизвестный, пройденный); требуется включенный кэш результатов

  • duration-ascending: по длительности (сначала самый быстрый тест, в конце самый медленный); требуется включенный кэш результатов

  • duration-descending: по длительности (сначала самый медленный тест, в конце самый быстрый); требуется включенный кэш результатов

  • random: в случайном порядке

  • reverse: в порядке обнаружения тестов PHPUnit, затем в обратном порядке

  • size-ascending: по размеру (маленькие, средние, большие, неизвестные); см. также Small, Medium и Large

  • size-descending: по размеру в обратном порядке (большие, средние, маленькие, неизвестные)

Модификаторы зависимостей (сочетаются с основными способами упорядочивания выше с помощью ,):

  • depends: сначала упорядочить по зависимостям (сначала тесты без зависимостей, в конце зависимые тесты), затем применить остальные способы упорядочивания

  • no-depends: не упорядочивать по зависимостям, затем применить остальные способы упорядочивания

Допустимые сочетания: depends,defects, depends,duration-ascending, depends,duration-descending, depends,random, depends,reverse, depends,size-ascending, depends,size-descending, а также соответствующие варианты no-depends,*.

Упорядочивание defects также можно сочетать со вторичным упорядочиванием, которое применяется внутри каждой категории дефектов: defects,duration-ascending, defects,duration-descending, defects,random, defects,reverse, defects,size-ascending, defects,size-descending. Перед ними также можно поставить depends, или no-depends,, например depends,defects,duration-ascending.

Атрибут resolveDependencies

Допустимые значения: true или false (по умолчанию: true)

Этот атрибут задает, следует ли разрешать зависимости между тестами (задаваемые с помощью атрибутов Depends*).

Атрибут testdox

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить результаты в формате TestDox.

Атрибут testdoxSummary

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли повторно выводить результаты TestDox для неуспешных тестов после обычного вывода TestDox.

Атрибут displayDetailsOnAllIssues

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения обо всех проблемах.

Обратная совместимость

Обратите внимание: если установить для displayDetailsOnAllIssues значение true, вы соглашаетесь выводить дополнительные сведения о проблемах, которые в будущих версиях PHPUnit будут подпадать под действие этой настройки. Это не считается нарушением обратной совместимости, а является ожидаемым поведением данной настройки.

Атрибут displayDetailsOnIncompleteTests

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения о незавершенных тестах.

Атрибут displayDetailsOnSkippedTests

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения о пропущенных тестах.

Атрибут displayDetailsOnTestsThatTriggerDeprecations

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения о тестах, вызвавших устаревания.

Атрибут displayDetailsOnPhpunitDeprecations

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения об устареваниях PHPUnit.

Атрибут displayDetailsOnPhpunitNotices

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения об уведомлениях PHPUnit.

Атрибут displayDetailsOnTestsThatTriggerErrors

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения о тестах, вызвавших ошибки.

Атрибут displayDetailsOnTestsThatTriggerNotices

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения о тестах, вызвавших уведомления.

Атрибут displayDetailsOnTestsThatTriggerWarnings

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут задает, следует ли выводить подробные сведения о тестах, вызвавших предупреждения.

Атрибут shortenArraysForExportThreshold

Допустимые значения: целое число (по умолчанию: 0)

Этот атрибут задает, следует ли ограничивать экспорт массивов указанным количеством элементов.

Если установлено значение 0 (по умолчанию), экспорт массивов не ограничивается.

Элемент <testsuites>

Родительский элемент: <phpunit>

Этот элемент является корневым для одного или нескольких элементов <testsuite>, используемых для настройки выполняемых тестов.

Элемент <testsuite>

Родительский элемент: <testsuites>

Элемент <testsuite> должен иметь атрибут name и может содержать один или несколько дочерних элементов <directory> и/или <file>, которые задают каталоги и/или файлы для поиска тестов соответственно. Файлы и каталоги можно исключить с помощью дочерних элементов <exclude>.

<phpunitbootstrap="vendor/autoload.php">
<testsuites>
<testsuitename="unit">
<directory>tests/unit</directory>
</testsuite>

<testsuitename="integration"bootstrap="tests/integration/bootstrap.php">
<directory>tests/integration</directory>
</testsuite>

<testsuitename="smoke">
<file>tests/smoke/FirstTest.php</file>
<file>tests/smoke/SecondTest.php</file>
</testsuite>
</testsuites>
</phpunit>

Элемент <directory> добавляет в набор тестов все найденные в каталоге классы тестов, а элемент <file> добавляет класс теста, найденный в отдельном файле. Это удобно, если в набор тестов должны войти лишь некоторые выбранные файлы из каталога.

Атрибут bootstrap

Допустимые значения: строка

Атрибут bootstrap можно использовать для настройки дополнительного загрузочного скрипта набора тестов.

При указанной выше конфигурации:

Запуск исполнителя тестов PHPUnit с параметром phpunit загружает vendor/autoload.php и tests/integration/bootstrap.php.

Запуск исполнителя тестов PHPUnit с параметром phpunit --testsuite unit загружает только vendor/autoload.php.

Запуск исполнителя тестов PHPUnit с параметром phpunit --testsuite integration загружает vendor/autoload.php и tests/integration/bootstrap.php.

Скрипт, заданный атрибутом bootstrap элемента <phpunit>, загружается всегда. Каждый загрузочный скрипт, даже если он настроен несколько раз, загружается только один раз.

Атрибуты phpVersion и phpVersionOperator

Допустимые значения: строка

Требуемую версию PHP можно указать с помощью атрибутов phpVersion и phpVersionOperator:

<testsuites>
<testsuitename="unit">
<directoryphpVersion="8.0.0"phpVersionOperator=">=">tests/unit</directory>
</testsuite>
</testsuites>

В приведенном выше примере тесты из каталога tests/unit добавляются в набор тестов, только если версия PHP не ниже 8.0.0. Атрибут phpVersionOperator является необязательным; по умолчанию используется >=.

Атрибут groups

Допустимые значения: строка

Тесты, найденные с помощью элементов <directory> и <file>, можно добавить в список групп, разделенных запятыми:

<testsuites>
<testsuitename="unit">
<directorygroups="foo,bar">tests/foo-bar</directory>
</testsuite>
</testsuites>

Элемент <source>

Родительский элемент: <phpunit>

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

Далее код, настроенный с помощью этого элемента, называется «вашим кодом» или «кодом первой стороны». Код, который не является «вашим кодом», называется «кодом третьей стороны».

Элемент <include>

Родительский элемент: <source>

Настраивает набор файлов, включаемых в список файлов исходного кода проекта.

<include>
<directorysuffix=".php">src</directory>
</include>

Приведенный выше пример указывает PHPUnit включить все файлы исходного кода с суффиксом .php в каталоге src и его подкаталогах.

Элемент <exclude>

Родительский элемент: <source>

Настраивает набор файлов, исключаемых из списка файлов исходного кода проекта.

<include>
<directorysuffix=".php">src</directory>
</include>

<exclude>
<directorysuffix=".php">src/generated</directory>
<file>src/autoload.php</file>
</exclude>

Приведенный выше пример указывает PHPUnit включить все файлы исходного кода с суффиксом .php в каталоге src и его подкаталогах, но исключить все файлы с суффиксом .php в каталоге src/generated и его подкаталогах, а также файл src/autoload.php.

Элемент <directory>

Родительские элементы: <include>, <exclude>

Настраивает каталог и его подкаталоги для включения в список файлов исходного кода проекта или исключения из него.

Атрибут prefix

Допустимые значения: строка

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

Атрибут suffix

Допустимые значения: строка (по умолчанию: '.php')

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

Атрибут includeInCodeCoverage

Допустимые значения: true или false (по умолчанию: true)

Имеет смысл только тогда, когда элемент <directory> является дочерним элементом <include>.

Если задано значение false, файлы в каталоге и его подкаталогах становятся частью списка файлов исходного кода проекта (например, для формирования отчетов об устаревших функциях, вызванных в этих файлах), но не учитываются при анализе покрытия кода.

Элемент <file>

Родительские элементы: <include>, <exclude>

Настраивает файл для включения в список файлов исходного кода проекта или исключения из него.

Атрибут includeInCodeCoverage

Допустимые значения: true или false (по умолчанию: true)

Имеет смысл только тогда, когда элемент <file> является дочерним элементом <include>.

Если задано значение false, файл становится частью списка файлов исходного кода проекта (например, для формирования отчетов об устаревших функциях, вызванных в нем), но не учитывается при анализе покрытия кода.

Элемент <deprecationTrigger>

Родительский элемент: <source>

Некоторые библиотеки используют обертку для функции PHP trigger_error(), например symfony/deprecation-contracts или doctrine/deprecations. Использование такой обертки добавляет в стек вызовов дополнительный кадр, который необходимо учитывать при указании места вызова устаревшей функции.

Элемент <deprecationTrigger> вместе с дочерними элементами <function> и <method> можно использовать для настройки функций и методов соответственно в качестве триггеров устаревания.

Атрибут ignoreUndefinedTriggers

Допустимые значения: true или false (по умолчанию: false)

Если задано значение true, функции и методы, настроенные как триггеры устаревания, которые не определены на момент загрузки конфигурации, молча игнорируются, а не вызывают предупреждение тестового средства запуска.

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

Элемент <function>

Родительский элемент: <deprecationTrigger>

<deprecationTrigger>
<function>trigger_deprecation</function>
</deprecationTrigger>

В приведенной выше конфигурации в качестве триггера устаревания задается глобальная функция trigger_deprecation().

Элемент <method>

Родительский элемент: <deprecationTrigger>

<deprecationTrigger>
<method>DeprecationTrigger::triggerDeprecation</method>
</deprecationTrigger>

В приведенной выше конфигурации метод triggerDeprecation() класса DeprecationTrigger, принадлежащий public static, задается в качестве триггера устаревания.

Элемент <issueTriggerResolvers>

Родительский элемент: <source>

Элемент <issueTriggerResolvers> позволяет регистрировать пользовательские классы средств разрешения триггеров проблем. Средство разрешения триггеров проблем позволяет переопределить способ, которым PHPUnit определяет файлы вызывающей и вызываемой сторон при классификации проблем (устаревших функций, уведомлений, предупреждений) как self, direct, indirect или test.

Это полезно, когда фреймворк или библиотека оборачивает trigger_error() таким образом, с которым элемент <deprecationTrigger> не справляется, например, если обертка является методом, для определения правильных файлов вызывающей и вызываемой сторон в котором необходимо анализировать сообщение об ошибке или аргументы трассировки стека.

Элемент <issueTriggerResolver>

Родительский элемент: <issueTriggerResolvers>

<issueTriggerResolvers>
<issueTriggerResolverclassName="Vendor\FrameworkResolver"/>
</issueTriggerResolvers>

Атрибут className должен содержать полное имя класса, реализующего интерфейс PHPUnit\Runner\IssueTriggerResolver\Resolver.

Можно зарегистрировать несколько средств разрешения:

<issueTriggerResolvers>
<issueTriggerResolverclassName="Vendor\FirstResolver"/>
<issueTriggerResolverclassName="Vendor\SecondResolver"/>
</issueTriggerResolvers>

Средства разрешения вызываются в указанном порядке. Каждое средство разрешения может вернуть объект PHPUnit\Runner\IssueTriggerResolver\Resolution (чтобы переопределить определение вызывающей и вызываемой сторон) или вернуть null, передав обработку следующему средству разрешения в цепочке. Если проблему не обрабатывает ни одно пользовательское средство разрешения, используется стандартное средство разрешения PHPUnit.

При запуске PHPUnit проверяет каждое настроенное средство разрешения:

  • Если класс не существует, выдается предупреждение тестового средства запуска

  • Если класс не реализует PHPUnit\Runner\IssueTriggerResolver\Resolver, выдается предупреждение тестового средства запуска

Недопустимые записи пропускаются после выдачи предупреждения и не мешают запуску набора тестов.

Дополнительные сведения о реализации пользовательских средств разрешения триггеров проблем см. в разделе Пользовательские средства разрешения триггеров проблем.

Атрибут <ignoreSelfDeprecations>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать устаревшие функции (E_DEPRECATED и E_USER_DEPRECATED), вызванные кодом первой стороны в коде первой стороны.

Атрибут <ignoreDirectDeprecations>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать устаревшие функции (E_DEPRECATED и E_USER_DEPRECATED), вызванные кодом первой стороны в коде третьей стороны.

Атрибут <ignoreIndirectDeprecations>

Допустимые значения: true или false (по умолчанию: false, рекомендуется: true)

Игнорировать устаревшие функции (E_DEPRECATED и E_USER_DEPRECATED), вызванные кодом третьей стороны.

Атрибут <restrictNotices>

Допустимые значения: true или false (по умолчанию: false)

Ограничивает регистрацию ошибок E_STRICT, E_NOTICE и E_USER_NOTICE списком файлов исходного кода проекта.

Атрибут <restrictWarnings>

Допустимые значения: true или false (по умолчанию: false)

Ограничивает регистрацию ошибок E_WARNING и E_USER_WARNING списком файлов исходного кода проекта.

Атрибут <baseline>

Допустимые значения: строка

Файл базового уровня, используемый при запуске набора тестов.

Атрибут <ignoreSuppressionOfDeprecations>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать подавление (с помощью оператора @) ошибок E_USER_DEPRECATED.

Атрибут <ignoreSuppressionOfPhpDeprecations>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать подавление (с помощью оператора @) ошибок E_DEPRECATED.

Атрибут <ignoreSuppressionOfErrors>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать подавление (с помощью оператора @) ошибок E_USER_ERROR.

Атрибут <ignoreSuppressionOfNotices>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать подавление (с помощью оператора @) ошибок E_USER_NOTICE.

Атрибут <ignoreSuppressionOfPhpNotices>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать подавление (с помощью оператора @) ошибок E_STRICT и E_NOTICE.

Атрибут <ignoreSuppressionOfWarnings>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать подавление (с помощью оператора @) ошибок E_USER_WARNING.

Атрибут <ignoreSuppressionOfPhpWarnings>

Допустимые значения: true или false (по умолчанию: false)

Игнорировать подавление (с помощью оператора @) ошибок E_WARNING.

Элемент <coverage>

Родительский элемент: <phpunit>

Элемент <coverage> и его дочерние элементы можно использовать для настройки покрытия кода:

<coverageincludeUncoveredFiles="true"
pathCoverage="false"
ignoreDeprecatedCodeUnits="true"
disableCodeCoverageIgnore="true">
<!-- ... -->
</coverage>

Атрибут includeUncoveredFiles

Допустимые значения: true или false (по умолчанию: true)

Если задано значение true, в отчетах о покрытии кода будут включены все файлы исходного кода, настроенные для анализа покрытия кода. Сюда входят файлы исходного кода, которые не выполняются во время запуска тестов.

Атрибут ignoreDeprecatedCodeUnits

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут настраивает, следует ли исключать из анализа покрытия кода программные единицы, помеченные аннотацией @deprecated.

Атрибут pathCoverage

Допустимые значения: true или false (по умолчанию: false)

Если задано значение false, собираются, обрабатываются и передаются в отчет только данные о покрытии строк.

Если задано значение true, собираются, обрабатываются и передаются в отчет данные о покрытии строк, ветвей и путей. Для этого необходим драйвер покрытия кода, поддерживающий покрытие путей. В настоящее время покрытие путей реализовано только в Xdebug.

Атрибут disableCodeCoverageIgnore

Допустимые значения: true или false (по умолчанию: false)

Этот атрибут настраивает, следует ли игнорировать метаданные, предписывающие исключить код из анализа.

Элемент <report>

Родительский элемент: <coverage>

Настраивает создаваемые отчеты о покрытии кода.

<report>
<cloveroutputFile="clover.xml"/>
<coberturaoutputFile="cobertura.xml"/>
<crap4joutputFile="crap4j.xml"threshold="50"/>
<htmloutputDirectory="html-coverage"lowUpperBound="50"highLowerBound="90"/>
<phpoutputFile="coverage.php"/>
<textoutputFile="coverage.txt"showUncoveredFiles="false"showOnlySummary="true"/>
<xmloutputDirectory="xml-coverage"/>
</report>

Элемент <clover>

Родительский элемент: <report>

Настраивает отчет о покрытии кода в формате Clover XML.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается отчет Clover XML.

Элемент <cobertura>

Родительский элемент: <report>

Настраивает отчет о покрытии кода в формате Cobertura XML.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается отчет Cobertura XML.

Элемент <crap4j>

Родительский элемент: <report>

Настраивает отчет о покрытии кода в формате Crap4J XML.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается отчет Crap4J XML.

Атрибут threshold

Допустимые значения: целое число (по умолчанию: 50)

Элемент <html>

Родительский элемент: <report>

Настраивает отчет о покрытии кода в формате HTML.

Атрибут outputDirectory

Допустимые значения: строка

Каталог, в который записывается отчет HTML.

Если этот атрибут не задан, для указания выходного каталога необходимо использовать параметр командной строки --coverage-html.

Атрибут lowUpperBound

Допустимые значения: целое число (по умолчанию: 50)

Верхняя граница показателя, ниже которой покрытие считается «низким».

Атрибут highLowerBound

Допустимые значения: целое число (по умолчанию: 90)

Нижняя граница показателя, выше которой покрытие считается «высоким».

Атрибут colorSuccessHigh

Допустимые значения: строка (по умолчанию: #8cb4d5)

Цвет, используемый, например, для обозначения строки кода, покрытой небольшими (и более крупными) тестами.

Атрибут colorSuccessMedium

Допустимые значения: строка (по умолчанию: #b3d1e8)

Цвет, используемый, например, для обозначения строки кода, покрытой средними (и крупными) тестами.

Атрибут colorSuccessLow

Допустимые значения: строка (по умолчанию: #d6e6f2)

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

Атрибут colorSuccessBar

Допустимые значения: строка (по умолчанию: #1a73b4)

Цвет, используемый для части «успеха» индикаторов выполнения покрытия.

Атрибут colorWarning

Допустимые значения: строка (по умолчанию: #fdf0d5)

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

Атрибут colorWarningBar

Допустимые значения: строка (по умолчанию: #e5a100)

Цвет, используемый для части «предупреждения» индикаторов выполнения покрытия.

Атрибут colorDanger

Допустимые значения: строка (по умолчанию: #fad4c0)

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

Атрибут colorDangerBar

Допустимые значения: строка (по умолчанию: #d45500)

Цвет, используемый для части «опасности» индикаторов выполнения покрытия.

Атрибут colorBreadcrumbs

Допустимые значения: строка (по умолчанию: var(--bs-gray-200))

Цвет, используемый для навигационной цепочки в отчете HTML.

Атрибут colorSuccessHighDark

Допустимые значения: строка (по умолчанию: #2a4a6b)

Вариант colorSuccessHigh для темного режима.

Атрибут colorSuccessMediumDark

Допустимые значения: строка (по умолчанию: #2d4f6e)

Вариант colorSuccessMedium для темного режима.

Атрибут colorSuccessLowDark

Допустимые значения: строка (по умолчанию: #1e3550)

Вариант colorSuccessLow для темного режима.

Атрибут colorSuccessBarDark

Допустимые значения: строка (по умолчанию: #1560a0)

Вариант colorSuccessBar для темного режима.

Атрибут colorWarningDark

Допустимые значения: строка (по умолчанию: #3d3010)

Вариант colorWarning для темного режима.

Атрибут colorWarningBarDark

Допустимые значения: строка (по умолчанию: #b88a00)

Вариант colorWarningBar для темного режима.

Атрибут colorDangerDark

Допустимые значения: строка (по умолчанию: #4a2a10)

Вариант colorDanger для темного режима.

Атрибут colorDangerBarDark

Допустимые значения: строка (по умолчанию: #b54400)

Вариант colorDangerBar для темного режима.

Атрибут colorBreadcrumbsDark

Допустимые значения: строка (по умолчанию: var(--bs-gray-800))

Вариант colorBreadcrumbs для темного режима.

Атрибут customCssFile

Допустимые значения: строка

Путь к пользовательскому файлу CSS.

Элемент <php>

Родительский элемент: <report>

Настраивает отчет о покрытии кода в формате PHP.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается отчет PHP.

Элемент <text>

Родительский элемент: <report>

Настраивает отчет о покрытии кода в текстовом формате.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается текстовый отчет.

Атрибут showUncoveredFiles

Допустимые значения: true или false (по умолчанию: false)

Атрибут showOnlySummary

Допустимые значения: true или false (по умолчанию: false)

Элемент <xml>

Родительский элемент: <report>

Настраивает отчет о покрытии кода в формате PHPUnit XML.

Атрибут outputDirectory

Допустимые значения: строка

Каталог, в который записывается отчет PHPUnit XML.

Элемент <logging>

Родительский элемент: <phpunit>

Элемент <logging> и его дочерние элементы можно использовать для настройки ведения журнала выполнения тестов.

<logging>
<junitoutputFile="junit.xml"/>
<teamcityoutputFile="teamcity.txt"/>
<testdoxHtmloutputFile="testdox.html"/>
<testdoxTextoutputFile="testdox.txt"/>
</logging>

Элемент <junit>

Родительский элемент: <logging>

Настраивает файл журнала результатов тестирования в формате JUnit XML.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается журнал результатов тестирования в формате JUnit XML.

Элемент <teamcity>

Родительский элемент: <logging>

Настраивает файл журнала результатов тестирования в формате TeamCity.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается журнал результатов тестирования в формате TeamCity.

Элемент <testdoxHtml>

Родительский элемент: <logging>

Настраивает файл журнала результатов тестирования в формате TestDox HTML.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается журнал результатов тестирования в формате TestDox HTML.

Элемент <testdoxText>

Родительский элемент: <logging>

Настраивает файл журнала результатов тестирования в текстовом формате TestDox.

Атрибут outputFile

Допустимые значения: строка

Файл, в который записывается журнал результатов тестирования в текстовом формате TestDox.

Элемент <groups>

Родительский элемент: <phpunit>

Элемент <groups> и его дочерние элементы <include>, <exclude> и <group> можно использовать для выбора групп тестов, помеченных атрибутом Group (описанным в разделе Группа), которые следует (не следует) запускать:

<groups>
<include>
<group>name</group>
</include>
<exclude>
<group>name</group>
</exclude>
</groups>

Пример выше эквивалентен запуску PHPUnit с помощью --group name --exclude-group name.

Элемент <extensions>

Родительский элемент: <phpunit>

Элемент <extensions> и его дочерние элементы <bootstrap> можно использовать для регистрации расширений средства запуска тестов.

Элемент <bootstrap>

Родительский элемент: <extensions>

<extensions>
<bootstrapclass="Vendor\ExampleExtensionForPhpunit\Extension"/>
</extensions>

Элемент <parameter>

Родительский элемент: <bootstrap>

Элемент <parameter> можно использовать для настройки параметров, передаваемых расширению при его загрузке.

<extensions>
<bootstrapclass="Vendor\ExampleExtensionForPhpunit\Extension">
<parametername="message"value="the-message"/>
</bootstrap>
</extensions>

Элемент <php>

Родительский элемент: <phpunit>

Элемент <php> и его дочерние элементы можно использовать для настройки параметров PHP, констант и глобальных переменных. Также его можно использовать для добавления include_path в начало.

Элемент <includePath>

Родительский элемент: <php>

Этот элемент можно использовать для добавления пути в начало include_path.

Элемент <ini>

Родительский элемент: <php>

Этот элемент можно использовать для настройки параметра конфигурации PHP с помощью ini_set().

<php>
<ininame="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

ini_set('foo', 'bar');

Примечание

Поскольку элемент <ini> внутри использует ini_set(), его можно применять только для параметров конфигурации PHP, которые можно изменить во время выполнения. Параметры конфигурации PHP, которые можно задать только в файле конфигурации (например, php.ini) или в командной строке (с помощью параметра PHP -d), нельзя задать с помощью элемента <ini>.

Элемент <const>

Родительский элемент: <php>

Этот элемент можно использовать для задания глобальной константы.

<php>
<constname="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

define('foo', 'bar');

Элемент <var>

Родительский элемент: <php>

Этот элемент можно использовать для задания глобальной переменной.

<php>
<varname="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

$GLOBALS['foo'] = 'bar';

Элемент <env>

Родительский элемент: <php>

Этот элемент можно использовать для задания значения в суперглобальном массиве $_ENV.

<php>
<envname="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

$_ENV['foo'] = 'bar';

По умолчанию переменные окружения не перезаписываются, если они уже существуют. Чтобы принудительно перезаписать существующие переменные, используйте атрибут force:

<php>
<envname="foo"value="bar"force="true"/>
</php>

Элемент <get>

Родительский элемент: <php>

Этот элемент можно использовать для задания значения в суперглобальном массиве $_GET.

<php>
<getname="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

$_GET['foo'] = 'bar';

Элемент <post>

Родительский элемент: <php>

Этот элемент можно использовать для задания значения в суперглобальном массиве $_POST.

<php>
<postname="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

$_POST['foo'] = 'bar';

Элемент <cookie>

Родительский элемент: <php>

Этот элемент можно использовать для задания значения в суперглобальном массиве $_COOKIE.

<php>
<cookiename="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

$_COOKIE['foo'] = 'bar';

Элемент <server>

Родительский элемент: <php>

Этот элемент можно использовать для задания значения в суперглобальном массиве $_SERVER.

<php>
<servername="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

$_SERVER['foo'] = 'bar';

Элемент <files>

Родительский элемент: <php>

Этот элемент можно использовать для задания значения в суперглобальном массиве $_FILES.

<php>
<filesname="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

$_FILES['foo'] = 'bar';

Элемент <request>

Родительский элемент: <php>

Этот элемент можно использовать для задания значения в суперглобальном массиве $_REQUEST.

<php>
<requestname="foo"value="bar"/>
</php>

Приведённая выше конфигурация XML соответствует следующему коду PHP:

$_REQUEST['foo'] = 'bar';

© 2005–2026 Sebastian Bergmann
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://docs.phpunit.de/en/13.2/xml-configuration-file.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API