При выполнении тестов 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.