Рискованные тесты
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/9.5/risky-tests.html