Файл конфигурации XML
Элемент <phpunit>
Атрибут backupGlobals
Возможные значения: true или false (по умолчанию: false)
PHPUnit может по желанию делать резервную копию всех глобальных и суперглобальных переменных перед каждым тестом и восстанавливать эту копию после каждого теста.
Этот атрибут настраивает эту операцию для всех тестов. Эту конфигурацию можно переопределить, используя аннотацию @backupGlobals на уровне класса и метода тестового случая.
Атрибут backupStaticAttributes
Возможные значения: true или false (по умолчанию: false)
PHPUnit может по желанию делать резервную копию всех статических атрибутов во всех объявленных классах перед каждым тестом и восстанавливать эту копию после каждого теста.
Этот атрибут настраивает эту операцию для всех тестов. Эту конфигурацию можно переопределить, используя аннотацию @backupStaticAttributes на уровне класса и метода тестового случая.
Атрибут bootstrap
Этот атрибут настраивает скрипт загрузки, который загружается перед выполнением тестов. Этот скрипт обычно только регистрирует обратный вызов автозагрузчика, используемый для загрузки кода, подлежащего тестированию.
Атрибут cacheResult
Возможные значения: true или false (по умолчанию: true)
Этот атрибут настраивает кэширование результатов тестов. Это кэширование требуется для работы определенных других функций.
Атрибут cacheResultFile
Этот атрибут настраивает файл, в котором хранится кэш результатов тестов (см. выше).
Атрибут cacheTokens
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает кэш в оперативной памяти потоков токенов, используемых для анализа покрытия кода.
При генерации более одного отчета о покрытии кода в одном запуске включение этого кэша увеличит использование памяти и может сократить время генерации отчетов.
Атрибут colors
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает использование цветов в выводе PHPUnit.
Установка этого атрибута в true эквивалентна использованию параметра командной строки --colors=auto.
Установка этого атрибута в false эквивалентна использованию параметра командной строки --colors=never.
Атрибут columns
Возможные значения: целое число или строка max (по умолчанию: 80)
Этот атрибут настраивает количество столбцов для вывода хода выполнения.
Если значение max задано, количество столбцов будет максимальным для текущего терминала.
Атрибут convertDeprecationsToExceptions
Возможные значения: true или false (по умолчанию: true)
Этот атрибут настраивает преобразование событий E_DEPRECATED и E_USER_DEPRECATED, генерируемых тестируемым кодом, в исключение (и помечает тест как ошибочный).
Атрибут convertErrorsToExceptions
Возможные значения: true или false (по умолчанию: true)
Этот атрибут настраивает преобразование событий E_ERROR и E_USER_ERROR, генерируемых тестируемым кодом, в исключение (и помечает тест как ошибочный).
Атрибут convertNoticesToExceptions
Возможные значения: true или false (по умолчанию: true)
Этот атрибут настраивает преобразование событий E_STRICT, E_NOTICE, и E_USER_NOTICE, генерируемых тестируемым кодом, в исключение (и помечает тест как ошибочный).
Атрибут convertWarningsToExceptions
Возможные значения: true или false (по умолчанию: true)
Этот атрибут настраивает преобразование событий E_WARNING и E_USER_WARNING, генерируемых тестируемым кодом, в исключение (и помечает тест как ошибочный).
Атрибут disableCodeCoverageIgnore
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будут ли игнорироваться аннотации @codeCoverageIgnore*.
Атрибут forceCoversAnnotation
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будет ли тест помечен как рискованный (см. Непреднамеренно покрытый код), если у него нет аннотации @covers.
Атрибут printerClass
Значение по умолчанию: PHPUnit\TextUI\ResultPrinter
Этот атрибут настраивает имя класса, который либо является PHPUnit\TextUI\ResultPrinter, либо наследуется от PHPUnit\TextUI\ResultPrinter. Объект этого класса используется для вывода прогресса и результатов тестов.
Атрибут printerFile
Этот атрибут можно использовать для настройки пути к файлу исходного кода, который объявляет класс, настроенный с помощью printerClass, в случае, если этот класс не может быть загружен автоматически.
Атрибут processIsolation
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должен ли каждый тест выполняться в отдельном процессе PHP для повышения изоляции.
Атрибут stopOnError
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должно ли выполнение набора тестов прекращаться после того, как первый тест завершился со статусом "ошибка".
Атрибут stopOnFailure
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должно ли выполнение набора тестов прекращаться после того, как первый тест завершился со статусом "неудача".
Атрибут stopOnIncomplete
Возможные значения: true или false (по умолчанию: false)
Данный атрибут настраивает, должно ли выполнение набора тестов завершаться после первого теста со статусом «неполный».
Атрибут stopOnRisky
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должно ли выполнение набора тестов завершаться после первого теста со статусом «рискованный».
Атрибут stopOnSkipped
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должно ли выполнение набора тестов завершаться после первого теста со статусом «пропущенный».
Атрибут stopOnWarning
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должно ли выполнение набора тестов завершаться после первого теста со статусом «предупреждение».
Атрибут stopOnDefect
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должно ли выполнение набора тестов завершаться после первого теста со статусом «ошибка», «сбой», «рискованный» или «предупреждение».
Атрибут failOnRisky
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должен ли запускатель тестов PHPUnit завершаться с кодом завершения оболочки, указывающим на ошибку, когда все тесты пройдены успешно, но есть тесты, помеченные как рискованные.
Атрибут failOnWarning
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, должен ли запускатель тестов PHPUnit завершаться с кодом завершения оболочки, указывающим на ошибку, когда все тесты пройдены успешно, но есть тесты с предупреждениями.
Атрибут beStrictAboutChangesToGlobalState
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будет ли PHPUnit отмечать тест как рискованный, если код под тестированием (или код теста) изменяет глобальное состояние.
Атрибут beStrictAboutOutputDuringTests
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будет ли PHPUnit отмечать тест как рискованный, если код под тестированием (или код теста) выводит данные.
Атрибут beStrictAboutResourceUsageDuringSmallTests
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будет ли PHPUnit отмечать тест, помеченный атрибутом @small, как рискованный, если он вызывает встроенную функцию или метод PHP, работающий с resource переменными.
Атрибут beStrictAboutTestsThatDoNotTestAnything
Возможные значения: true или false (по умолчанию: true)
Этот атрибут настраивает, будет ли PHPUnit отмечать тест как рискованный, если не выполняются утверждения (ожидания также учитываются).
Атрибут beStrictAboutTodoAnnotatedTests
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будет ли PHPUnit отмечать тест как рискованный, если он помечен атрибутом @todo.
Атрибут beStrictAboutCoversAnnotation
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будет ли PHPUnit отмечать тест как рискованный, если он выполняет код, который не указан с помощью @covers или @uses.
Атрибут ignoreDeprecatedCodeUnitsFromCodeCoverage
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будут ли игнорироваться блоки кода, помеченные @deprecated, в покрытии кода.
Атрибут enforceTimeLimit
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, следует ли применять временные ограничения.
Атрибут defaultTimeLimit
Возможные значения: целое число (по умолчанию: 0)
Этот атрибут настраивает стандартное время выполнения (в секундах).
Атрибут timeoutForSmallTests
Возможные значения: целое число (по умолчанию: 1)
Этот атрибут настраивает временное ограничение для тестов, помеченных как @small (в секундах).
Атрибут timeoutForMediumTests
Возможные значения: целое число (по умолчанию: 10)
Этот атрибут настраивает временное ограничение для тестов, помеченных как @medium (в секундах).
Атрибут timeoutForLargeTests
Возможные значения: целое число (по умолчанию: 60)
Этот атрибут настраивает временное ограничение для тестов, помеченных как @large (в секундах).
Атрибут testSuiteLoaderClass
По умолчанию: PHPUnit\Runner\StandardTestSuiteLoader
Этот атрибут настраивает имя класса, реализующего интерфейс PHPUnit\Runner\TestSuiteLoader. Объект этого класса используется для загрузки набора тестов.
Атрибут testSuiteLoaderFile
Этот атрибут может использоваться для настройки пути к файлу исходного кода, в котором объявлен класс, настроенный с помощью testSuiteLoaderClass, в случае, если этот класс не может быть загружен автоматически.
Атрибут defaultTestSuite
Этот атрибут настраивает имя набора тестов по умолчанию.
Атрибут verbose
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, следует ли выводить более подробный вывод.
Атрибут 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, random, reverse, size
Возможны несколько значений. Они должны быть разделены ,.
Этот атрибут настраивает порядок выполнения тестов.
Атрибут resolveDependencies
Возможные значения: true или false (по умолчанию: true)
Этот атрибут настраивает, будут ли разрешаться зависимости между тестами (выраженные с помощью аннотации @depends).
Атрибут testdox
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает, будет ли вывод выводиться в формате TestDox.
Атрибут noInteraction
Возможные значения: true или false (по умолчанию: false)
Этот атрибут настраивает анимацию прогресса при использовании формата TestDox, например.
Элемент <testsuites>
Родительский элемент: <phpunit>
Этот элемент является корневым для одного или нескольких элементов <testsuite>, используемых для настройки тестов, которые должны быть выполнены.
Элемент <testsuite>
Родительский элемент: <testsuites>
Элемент <testsuite> должен иметь атрибут name и может содержать один или несколько дочерних элементов <directory> и/или <file>, которые настраивают директории и/или файлы, соответственно, для поиска тестов.
<testsuites>
<testsuite name="unit">
<directory>tests/unit</directory>
</testsuite>
<testsuite name="integration">
<directory>tests/integration</directory>
</testsuite>
<testsuite name="edge-to-edge">
<directory>tests/edge-to-edge</directory>
</testsuite>
</testsuites>
Используя атрибуты phpVersion и phpVersionOperator, можно указать требуемую версию PHP:
<testsuites>
<testsuite name="unit">
<directory phpVersion="8.0.0" phpVersionOperator=">=">tests/unit</directory>
</testsuite>
</testsuites>
В примере выше, тесты из директории tests/unit добавляются в тест-свит только если версия PHP не ниже 8.0.0. Атрибут phpVersionOperator является необязательным и по умолчанию равен >=.
Элемент <groups>
Родительский элемент: <phpunit>
Элемент <groups> и его дочерние элементы <include>, <exclude>, и <group> могут использоваться для выбора групп тестов, помеченных аннотацией @group (документирована в @group), которые должны (или не должны) быть выполнены:
<groups>
<include>
<group>name</group>
</include>
<exclude>
<group>name</group>
</exclude>
</groups>
Приведённый выше пример эквивалентен вызову исполнителя тестов PHPUnit с --group name --exclude-group name.
Элемент <testdoxGroups>
Родительский элемент: <phpunit>
… В процессе …
Элемент <filter>
Родительский элемент: <phpunit>
Элемент <filter/whitelist> и его дочерние элементы могут использоваться для настройки белого списка отчёта о покрытии кода:
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">src</directory>
<exclude>
<file>src/autoload.php</file>
</exclude>
</whitelist>
</filter>
Элемент <listeners>
Родительский элемент: <phpunit>
Элемент <listeners> и его <listener> дочерние элементы могут использоваться для подключения дополнительных слушателей тестов к выполнению теста.
Элемент <listener>
Родительский элемент: <listeners>
<listeners>
<listener class="MyListener" file="/optional/path/to/MyListener.php">
<arguments>
<array>
<element key="0">
<string>Sebastian</string>
</element>
</array>
<integer>22</integer>
<string>April</string>
<double>19.78</double>
<null/>
<object class="stdClass"/>
</arguments>
</listener>
</listeners>
Приведённая выше XML-конфигурация соответствует подключению объекта $listener (см. ниже) к выполнению теста:
$listener = new MyListener(
['Sebastian'],
22,
'April',
19.78,
null,
new stdClass
);
Примечание
Обратите внимание, что интерфейс PHPUnit\Framework\TestListener устарел и будет удалён в будущем. Для расширений TestRunner следует использовать расширения тестов вместо слушателей тестов.
Элемент <extensions>
Родительский элемент: <phpunit>
Элемент <extensions> и его <extension> дочерние элементы могут использоваться для регистрации расширений тестового загрузчика.
Элемент <extension>
Родительский элемент: <extensions>
<extensions>
<extension class="Vendor\MyExtension"/>
</extensions>
Элемент <arguments>
Родительский элемент: <extension>
Элемент <arguments> может использоваться для настройки одного <extension>.
Принимает список элементов типов, которые затем используются для настройки отдельных расширений. Аргументы передаются методу __constructor класса расширения в порядке их определения в конфигурации.
Доступные типы:
<boolean><integer><string>-
<double>(float) <array><object>
<extension class="Vendor\MyExtension">
<arguments>
<integer>1</integer>
<integer>2</integer>
<integer>3</integer>
<string>hello world</string>
<boolean>true</boolean>
<double>1.23</double>
<array>
<element index="0">
<string>value1</string>
</element>
<element index="1">
<string>value2</string>
</element>
</array>
<object class="Vendor\MyPhpClass">
<string>constructor arg 1</string>
<string>constructor arg 2</string>
</object>
</arguments>
</extension>
Элемент <logging>
Родительский элемент: <phpunit>
Элемент <logging> и его дочерние элементы <log> могут использоваться для настройки ведения журнала выполнения теста.
Элемент <log>
Родительский элемент: <logging>
<logging>
<log type="coverage-html" target="/tmp/report" lowUpperBound="35" highLowerBound="70"/>
<log type="coverage-clover" target="/tmp/coverage.xml"/>
<log type="coverage-php" target="/tmp/coverage.serialized"/>
<log type="coverage-text" target="php://stdout" showUncoveredFiles="false"/>
<log type="junit" target="/tmp/logfile.xml"/>
<log type="testdox-html" target="/tmp/testdox.html"/>
<log type="testdox-text" target="/tmp/testdox.txt"/>
</logging>
Вышеприведенная XML-конфигурация соответствует вызову тестового исполнителя TextUI со следующими опциями:
--coverage-html /tmp/report--coverage-clover /tmp/coverage.xml--coverage-php /tmp/coverage.serialized--coverage-text> /tmp/logfile.txt--log-junit /tmp/logfile.xml--testdox-html /tmp/testdox.html--testdox-text /tmp/testdox.txt
Атрибуты lowUpperBound, highLowerBound, и showUncoveredFiles не имеют эквивалентов в опциях тестового исполнителя TextUI.
-
lowUpperBound: Максимальный процент покрытия, который считается «низким». -
highLowerBound: Минимальный процент покрытия, который считается «высоким». -
showUncoveredFiles: Отобразить все разрешённые файлы в выводе--coverage-text, а не только те, которые имеют информацию о покрытии. -
showOnlySummary: Отобразить только сводку в выводе--coverage-text.
Элемент <php>
Родительский элемент: <phpunit>
Элемент <php> и его дочерние элементы могут использоваться для настройки параметров PHP, констант и глобальных переменных. Он также может использоваться для добавления в начало include_path.
Элемент <includePath>
Родительский элемент: <php>
Этот элемент может использоваться для добавления пути к include_path.
Элемент <ini>
Родительский элемент: <php>
Этот элемент может использоваться для установки параметра конфигурации PHP.
<php>
<ini name="foo" value="bar"/>
</php>
Вышеприведенная XML-конфигурация соответствует следующему коду PHP:
ini_set('foo', 'bar');
Элемент <const>
Родительский элемент: <php>
Этот элемент может использоваться для установки глобальной константы.
<php>
<const name="foo" value="bar"/>
</php>
Вышеприведенная XML-конфигурация соответствует следующему коду PHP:
define('foo', 'bar');
Элемент <var>
Родительский элемент: <php>
Этот элемент может использоваться для установки глобальной переменной.
<php>
<var name="foo" value="bar"/>
</php>
Вышеприведенная XML-конфигурация соответствует следующему коду PHP:
$GLOBALS['foo'] = 'bar';
Элемент <env>
Родительский элемент: <php>
Этот элемент может использоваться для установки значения в суперглобальный массив $_ENV.
<php>
<env name="foo" value="bar"/>
</php>
Вышеприведенная XML-конфигурация соответствует следующему коду PHP:
$_ENV['foo'] = 'bar';
По умолчанию, переменные окружения не перезаписываются, если они уже существуют. Чтобы принудительно перезаписать существующие переменные, используйте атрибут force:
<php>
<env name="foo" value="bar" force="true"/>
</php>
The <get> Element
Parent element: <php>
This element can be used to set a value in the super-global array $_GET.
<php>
<get name="foo" value="bar"/>
</php>
The XML configuration above corresponds to the following PHP code:
$_GET['foo'] = 'bar';
The <post> Element
Parent element: <php>
This element can be used to set a value in the super-global array $_POST.
<php>
<post name="foo" value="bar"/>
</php>
The XML configuration above corresponds to the following PHP code:
$_POST['foo'] = 'bar';
The <cookie> Element
Parent element: <php>
This element can be used to set a value in the super-global array $_COOKIE.
<php>
<cookie name="foo" value="bar"/>
</php>
The XML configuration above corresponds to the following PHP code:
$_COOKIE['foo'] = 'bar';
The <server> Element
Parent element: <php>
This element can be used to set a value in the super-global array $_SERVER.
<php>
<server name="foo" value="bar"/>
</php>
The XML configuration above corresponds to the following PHP code:
$_SERVER['foo'] = 'bar';
The <files> Element
Parent element: <php>
This element can be used to set a value in the super-global array $_FILES.
<php>
<files name="foo" value="bar"/>
</php>
The XML configuration above corresponds to the following PHP code:
$_FILES['foo'] = 'bar';
The <request> Элемент
Родительский элемент: <php>
Этот элемент можно использовать для задания значения в суперглобальном массиве $_REQUEST.
<php>
<request name="foo" value="bar"/>
</php>
Вышеприведенная XML-конфигурация соответствует следующему коду PHP:
$_REQUEST['foo'] = 'bar';
© 2005–2020 Sebastian Bergmann
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://phpunit.readthedocs.io/en/8.5/configuration.html