Как найти причину рискованного теста в PHPUnit
Время от времени я получаю рискованный тест в PHPUnit. Обычно я могу найти причину для рискованного теста. Но задача может занять много времени, потому что я не вижу сообщений от PHPUnit, почему тест помечен как рискованный. Я получаю только что-то вроде этого:
PHPUnit 4.4.5 by Sebastian Bergmann.
Configuration read from phpunit.xml.dist
R...................R.R...
Time: 11,91 seconds, Memory: 42,50Mb
OK, but incomplete, skipped, or risky tests!
Tests: 26, Assertions: 32, Risky: 3.
Есть ли возможность указать PHPUnit показывать сообщения или лучше что-то вроде трассировки стека в коде, вызывающем рискованный флаг? Полный список причин для рискованного теста также может оказаться полезным.
2 ответа
Решение
Этот вопрос заслуживает ответа, взятого из комментариев выше.
phpunit -v
Это дает краткое описание причины рискованного теста
-v|--verbose Output more verbose information.
Начиная с PHPUnit 5.3, полный список рискованных причин:
- Тест не делает никаких утверждений, если строго придерживаться тестов, которые ничего не делают. ( Источник.)
- Тест отмечен
@todo
, когда строго по аннотациям TODO. ( Источник.) - Использование функции, которая работает с ресурсом, при выполнении небольшого теста и строгом отношении к использованию ресурса. (Источник: брошено сюда на основании этого условия.)
- Код не закрывает точно выходные буферы, которые он открыл. ( Источник.)
- Код выполняет методы, явно не перечисленные в
@covers
для теста. ( Источник. Сообщение в блоге по этому сценарию.) - Код вручную выкидывает
PHPUnit_Framework_RiskyTestError
, - Код вручную выкидывает
PHPUnit_Framework_UnintentionallyCoveredCodeError
,