PHPUnit - исключить некоторые каталоги из покрытия кода в командной строке - PullRequest
11 голосов
/ 23 февраля 2012

Я работаю над проектом, основанным на платформе Yii, и у нас есть много тестов, которые мы программно добавили в набор тестов, поэтому мы не используем файл phpunit.xml для настройки тестов.

Вопрос в том,как я бы исключил некоторые каталоги из отчетов о покрытии кода (например, папка Yii).Большинство решений, которые я нашел, основаны на параметре настройки черного / белого списков в xml-файле.

Я также обнаружил, что есть опция --filter для команды phpunit, но я не смог найти ни одного примера, как я мог бы ее использоватьисключить полный каталог (или их несколько).

1 Ответ

11 голосов
/ 23 февраля 2012

--filter используется для фильтрации тестов, которые выполняются при текущем запуске phpunit.

Вы можете использовать его, скажем, "только выполнить --filter MyTestClass или --filter testStuffThatBrokeAndIOnlyWantToRunThatOneSingleTest, но это не имеет никакого отношения к покрытию кода.

--filter не имеет ничего общего с <filter> в конфигурации xml, даже если они имеют одинаковое имя:)


Единственный способ исключить файлы из отчета о покрытии кода - это использовать белый / черный список.

Если вы используете белый список в собственной папке source, которая должна выполнять эту работу в большинстве случаев.

Белый список документов:

http://phpunit.de/manual/current/en/phpunit-book.html#appendixes.configuration.blacklist-whitelist

Пример:

  <filter>
    <whitelist addUncoveredFilesFromWhitelist="true">
      <directory suffix=".php">src</directory>
    </whitelist>
  </filter>
...