Spec-Zone.ru › PHPUnit 8

Рискованные тесты

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

Неполезные тесты

PHPUnit по умолчанию строго относится к тестам, которые не проверяют ничего. Эту проверку можно отключить, используя параметр --dont-report-useless-tests в командной строке или задав beStrictAboutTestsThatDoNotTestAnything="false" в файле конфигурации PHPUnit.

Тест, который не выполняет утверждение, будет помечен как рискованный при включенной этой проверке. Ожидания для объектов-моков считаются утверждением.

Непреднамеренно покрытый код

PHPUnit может строго относиться к непреднамеренно покрытому коду. Эту проверку можно включить, используя параметр --strict-coverage в командной строке или задав beStrictAboutCoversAnnotation="true" в файле конфигурации PHPUnit.

Тест, помеченный аннотацией @covers и выполняющий код, который не указан с помощью аннотации @covers или @uses, будет помечен как рискованный при включенной этой проверке.

Кроме того, задав forceCoversAnnotation="true" в файле конфигурации PHPUnit, тест может быть помечен как рискованный, если у него нет аннотации @covers.

Вывод во время выполнения теста

PHPUnit может строго относиться к выводу во время тестов. Эту проверку можно включить, используя параметр --disallow-test-output в командной строке или задав beStrictAboutOutputDuringTests="true" в файле конфигурации PHPUnit.

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

Таймаут выполнения теста

Для выполнения теста можно установить лимит времени, если установлен пакет PHP_Invoker и доступен расширение pcntl. Включение этого лимита времени можно выполнить, используя параметр --enforce-time-limit в командной строке или задав enforceTimeLimit="true" в файле конфигурации PHPUnit.

Тест, помеченный аннотацией @large, завершится с ошибкой, если его выполнение займет более 60 секунд. Этот таймаут настраивается через атрибут timeoutForLargeTests в файле конфигурации.

Тест, помеченный аннотацией @medium, завершится с ошибкой, если его выполнение займет более 10 секунд. Этот таймаут настраивается через атрибут timeoutForMediumTests в файле конфигурации.

Тест, помеченный аннотацией @small, завершится с ошибкой, если его выполнение займет более 1 секунды. Этот таймаут настраивается через атрибут timeoutForSmallTests в файле конфигурации.

Примечание

Тесты необходимо явно пометить аннотациями @small, @medium, или @large, чтобы включить ограничения времени выполнения.

Изменение глобального состояния

PHPUnit может строго относиться к тестам, которые изменяют глобальное состояние. Эту проверку можно включить, используя параметр --strict-global-state в командной строке или задав beStrictAboutChangesToGlobalState="true" в файле конфигурации PHPUnit.

© 2005–2020 Sebastian Bergmann
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://phpunit.readthedocs.io/en/8.5/risky-tests.html

Spec-Zone.ru

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