Spec-Zone.ru › PHPUnit 8

Файл конфигурации 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, в покрытии кода.

END_OF_DOCUMENT_MARKER

Атрибут 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

Spec-Zone.ru

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