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

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

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

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

Ответ 1

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

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

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


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

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

Документы Whitelist:

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

Пример:

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