Рискованные тесты
PHPUnit может помочь вам определить рискованные тесты, например, ложные тесты, которые дают ложное чувство безопасности.
Тесты, которые считаются рискованными, не вносят вклад в покрытие кода.
Бесполезные тесты
По умолчанию PHPUnit строго относится к тестам, которые ничего не проверяют: тесты, которые не выполняют утверждения и не настраивают ожидания для объектов-моков.
Этот контроль можно отключить, используя опцию --dont-report-useless-tests в командной строке или установив beStrictAboutTestsThatDoNotTestAnything="false" в файле конфигурации PHPUnit в формате XML XML-файл конфигурации.
Непреднамеренно покрытый код
PHPUnit может строго относиться к непреднамеренно покрытому коду. Этот контроль можно включить, используя опцию --strict-coverage в командной строке или установив beStrictAboutCoverageMetadata="true" в файле конфигурации PHPUnit в формате XML XML-файл конфигурации.
Тест, к которому применено PHPUnit\Framework\Attributes\CoversClass или PHPUnit\Framework\Attributes\CoversFunction и который выполняет код, не указанный с помощью PHPUnit\Framework\Attributes\CoversClass, PHPUnit\Framework\Attributes\CoversFunction, PHPUnit\Framework\Attributes\UsesClass или PHPUnit\Framework\Attributes\UsesFunction, будет считаться рискованным при включенном контроле и если размер теста небольшой или неизвестен.
Кроме того, установив requireCoverageMetadata="true" в файле конфигурации PHPUnit в формате XML XML-файл конфигурации, тест может считаться рискованным, если он не имеет метаданных покрытия кода.
Вывод во время выполнения теста
PHPUnit может строго относиться к выводу во время выполнения тестов. Этот контроль можно включить, используя опцию --disallow-test-output в командной строке или установив beStrictAboutOutputDuringTests="true" в файле конфигурации PHPUnit в формате XML XML-файл конфигурации.
Тест, который генерирует вывод, например, вызывая print в коде теста или в тестируемом коде, будет считаться рискованным, когда этот контроль включен.
Таймаут выполнения теста
PHPUnit может установить ограничение по времени для выполнения теста, когда доступен расширение pcntl. Включение этого ограничения по времени можно осуществить, используя опцию --enforce-time-limit в командной строке или установив enforceTimeLimit="true" в файле конфигурации PHPUnit в формате XML XML-файл конфигурации.
Тест, к которому применено PHPUnit\Framework\Attributes\Large (или к которому применена аннотация @large), будет считаться рискованным, если его выполнение занимает более 60 секунд. Этот таймаут настраивается с помощью атрибута timeoutForLargeTests в XML-файле конфигурации.
Тест, к которому применено PHPUnit\Framework\Attributes\Medium (или к которому применена аннотация @medium), будет считаться рискованным, если его выполнение занимает более 10 секунд. Этот таймаут настраивается с помощью атрибута timeoutForMediumTests в XML-файле конфигурации.
Тест, к которому применено PHPUnit\Framework\Attributes\Small (или к которому применена аннотация @small), будет считаться рискованным, если его выполнение занимает более 1 секунды. Этот таймаут настраивается с помощью атрибута timeoutForSmallTests в XML-файле конфигурации.
Манипуляции со глобальным состоянием
PHPUnit может строго относиться к тестам, которые манипулируют глобальным состоянием. Этот контроль можно включить, используя опцию --strict-global-state в командной строке или установив beStrictAboutChangesToGlobalState="true" в файле конфигурации PHPUnit в формате XML XML-файл конфигурации.
© 2005–2025 Sebastian Bergmann
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://docs.phpunit.de/en/12.0/risky-tests.html