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

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

 

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

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

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

Примечание

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

 

Манипуляция глобальным состоянием

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

https://phpunit.readthedocs.io/ru/latest/risky-tests.html

Leave a Reply

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.