Как найти причину рискованного теста в 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,
Другие вопросы по тегам