Рискованные тесты
Вступление
PHPUnit может быть сделан для некоторых дополнительных проверок, в то время как он запускает некоторые тесты в фоновом режиме. Некоторые из этих дополнительных проверок рассматриваются ниже
# Бесполезные тесты
PHPUnit по умолчанию строг в отношении тестов, которые ничего не тестируют. Эта проверка может быть отключена с помощью параметра `--d't-report-useless-tests` в командной строке или путем установки` beStrictAboutTestsThatDoNotTestAnything = "false" `в XML-файле конфигурации PHPUnit.
Тест, который не выполняет утверждение, будет помечен как рискованный, если эта проверка включена. Ожидания для фиктивных объектов или аннотаций, таких как @expectedException, считаются утверждением.
# Непреднамеренно покрытый код
PHPUnit может быть строгим по отношению к непреднамеренно покрытому коду. Эта проверка может быть включена с помощью параметра `--strict-покрытие` в командной строке или путем установки` beStrictAboutCoversAnnotation = "true" `в XML-файле конфигурации PHPUnit.
Тест с аннотацией `@ cover` и выполнением кода, который не указан с помощью аннотации` @ cover` или `@ метки`, будет отмечен как рискованный, если эта проверка включена.
# Выход во время выполнения теста
PHPUnit может быть сделан строгим к выводу во время тестов. Эта проверка может быть включена с помощью параметра `--disallow-test-output` в командной строке или путем установки` beStrictAboutOutputDuringTests = "true" `в XML-файле конфигурации PHPUnit.
Тест, который выдает выходные данные, например, вызывая print либо в тестовом коде, либо в тестированном коде, будет помечен как рискованный, если эта проверка включена.
# Время выполнения теста
Для выполнения теста может быть введено ограничение по времени, если установлен пакет `PHP_Invoker` и доступно расширение` pcntl`. Применение этого временного ограничения может быть включено с помощью параметра `--enforce-time-limit` в командной строке или путем установки `forceTimeLimit =" 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.
Предыдущая: Организация тестов в phpunit
Далее: Неполные и пропущенные тесты
Новый контент: Composer: менеджер зависимостей для PHP , R программирования