Spec-Zone.ru › PHPUnit

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

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

Spec-Zone.ru

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