Как покрытие кода PHPUnit может игнорировать мой автозагрузчик?

У меня есть загрузчик в моем конфиге phpunit, который запускает Zend\Loader\StandardAutoloader.php, Я могу получить покрытие кода PHPUnit, чтобы игнорировать его при добавлении

<filter>
   <blacklist>
       <directory suffix=".php">/absolute/path/to/zf</directory>
   </blacklist>
</filter>

в XML-файл конфигурации PHPUnit. Но я должен указать абсолютный путь. Я хочу, чтобы это был относительный путь, но PHPUnit не игнорирует папку Zend в покрытии кода. Я не хочу добавлять другое местоположение, когда я работаю дома, и я не хочу, чтобы другие разработчики добавляли свои собственные пути. Zend Framework находится в php.ini include_path настройка, но это не работает:

<filter>
   <blacklist>
       <directory suffix=".php">./Zend</directory>
   </blacklist>
</filter>

Какие-либо предложения?

2 ответа

Решение

Вы можете исключить пути из покрытия кода с помощью <exclude>...</exclude> директива в вашем <filter><whitelist>:

<filter>
    <whitelist>
        <directory suffix=".php">../src/library/</directory>
        <!-- add more directories -->
        <exclude>
            <directory suffix=".phtml">./src/application/</directory>
            <directory suffix=".php">./Zend/</directory>
            <!-- add more directories with relative or absolute path -->
        </exclude>
    </whitelist>
</filter>    

На самом деле это можно сделать и с помощью черного списка. Путь должен быть относительно вашего каталога тестов.

Это добилось цели в моем проекте:

<filter>
    <blacklist>
        <directory suffix=".php">../../../cache</directory>
    </blacklist>
</filter>
Другие вопросы по тегам