Покрытие кода PHPUnit не работает с конфигурацией - PullRequest
3 голосов
/ 27 августа 2010

У меня есть отчет по настройке и покрытию PHPUnit без фильтра белого списка. Однако, как только я добавляю один, отчет создается только частично, как будто PHPUnit неожиданно завершает работу. Я не получаю никаких ошибок или предупреждений.

Мой конфигуратор выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="./bootstrap.php"
         colors="true">
    <testsuites>
        <testsuite name="...">
            <testsuite name="...">
                <directory>./path/to/suite</directory>
            </testsuite>
            <testsuite name="...">
                <directory>./path/to/suite2</directory>
            </testsuite>
            <testsuite name="...">
                <directory>./path/to/suite3</directory>
            </testsuite>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist>
            <directory suffix=".php">../path/to/files</directory>
        </whitelist>
    </filter>

    <logging>
        <log type="coverage-html" target="log/" charset="UTF-8" yui="true" />
    </logging>
</phpunit>

Есть идеи, что может пойти не так?

Ответы [ 2 ]

2 голосов
/ 27 августа 2010

Оказалось, что в файлах, которые я занес в белый список, был какой-то скрипт, останавливающий процедурный код.

1 голос
/ 08 сентября 2012

Извините за то, что выкопал старый, но я погуглил, что покрытие кода phpunit не работает, и этот обнаружился.

Я позволил покрытию кода просто запустить его курс (думаю, для него используется xdebug), и какое-то время это было нормально.

Затем, когда я создал новый тест, он внезапно перестал работать, код, который был запущен, был помечен как не покрытый.

Тестовые классы, которые я создал с помощью phpunit: phpunit-skelgen --test

Этот создает аннотации покрытия, такие как: @covers MyClass :: someMethod

Удаление их решило это для меня, xdebug теперь использовался снова и неожиданно имел 100% охват.

Одно замечание о покрытии; Простой вызов метода один раз покрывает его в отчете, но в большинстве случаев его нельзя рассматривать как покрытый. Вызов с нулевыми значениями и недействительными значениями покрывает это.

...