Skip to content
This repository has been archived by the owner on Dec 2, 2021. It is now read-only.

Latest commit

 

History

History
43 lines (26 loc) · 4.63 KB

risky-tests.md

File metadata and controls

43 lines (26 loc) · 4.63 KB

Опасные(Risky) тесты

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

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

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

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

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

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

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

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

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

Если данная проверка включена, то тест который генерирует вывод, например, выполнение print либо в коде самомго теста либо в тестируемом коде, будут помечены как опасные.

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

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

Тесты с анотацией @large будут считаться непройдеными если они выполняются дольше 60 секунд. Данный лимит времени настривается с помощью атрибута timeoutForLargeTests в XML файле конфигурации.

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

Тесты не содержащие ни одной из анотаций @large или @medium считаются объявленными как @small. Такие тесты будут считаться непройдеными если они выполняются дольше 1 секунды. Данный лимит времени настривается с помощью атрибута timeoutForSmallTests в XML файле конфигурации.

Изменение глобального состояния

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