Phpunit Clover из некоторых каталогов, а не полный клевер.Является ли это возможным? - PullRequest
6 голосов
/ 27 августа 2010

Зачем мне это нужно? Я запускаю тесты для проекта Symfony (и использую Zend fw), а phpunit генерирует клевер для всех затронутых файлов Но я не хочу видеть освещение для Symfony и Zend libs (и всех других сторонних). Я хочу видеть покрытие только для моего кода. Или может быть это должен сделать клевер зритель? Я использую плагин клевера для Гудзона, но он не поддерживает просмотр для определенных источников. Плагин клевера показывает, что мой код покрыл только 20%, что неверно, потому что он учитывал Symfony и Zend libs.

Кстати, может быть есть другие способы получить это?

Ответы [ 2 ]

10 голосов
/ 07 сентября 2010

Вам необходимо создать файл конфигурации для phpunit, внутри этого файла конфигурации вы можете исключить определенные файлы или каталоги из покрытия кода.

Пример файла выглядит следующим образом:

<phpunit stopOnFailure="false">
    <testsuite name="Name">
    </testsuite>

<filter>
    <whitelist>
            <directory suffix=".php">../php</directory>
            <exclude>
                    <file>../php/somefile.php</file>
                    <directory suffix=".php">../php/pdf</directory>
            </exclude>
    </whitelist>
</filter>

<logging>


        <log type="coverage-html" target="target-dir/coverage" charset="UTF-8" yui="true" highlight="true"/>
        <log type="coverage-clover" target="target-dir/build/logs/clover.xml"/>
</logging>

</phpunit>

СВ приведенном выше файле все в ../php (это относительно каталога, в котором находятся тесты и из которого выполняется phprun) включено в покрытие кода, за исключением файла ../php/somefile.php ивсе файлы с расширением .php из каталога ../php/pdf

Назовите этот файл phpunit.xml, поместите его в тот же каталог, откуда вы запускаете тесты.Их, если вы запустите phpunit, он выберет файл конф.файл доступен по адресу: http://phpunit.de/manual/3.7/en/appendixes.configuration.html

0 голосов
/ 05 октября 2012

Я думаю, что примечание фильтра файла конфигурации xml должно быть обернуто узлом входа в систему:

Как это:

<phpunit stopOnFailure="false">
    <testsuite name="Name"></testsuite>

    <logging>
        <filter>
                <whitelist>
                        <directory suffix=".php">../php</directory>
                        <exclude>
                                <file>../php/somefile.php</file>
                                <directory suffix=".php">../php/pdf</directory>
                        </exclude>
                </whitelist>
        </filter>

        <log type="coverage-html" target="target-dir/coverage" charset="UTF-8" yui="true" highlight="true"/>
        <log type="coverage-clover" target="target-dir/build/logs/clover.xml"/>
    </logging>

...