Отчет о покрытии кода неверно указывает на 100% покрытие контроллера - PullRequest
3 голосов
/ 26 января 2011

Я запускаю серию тестов PHPunit и у меня есть контроллер, который сообщает о 100% покрытии. Однако в отчете о покрытии только 5 из 84 строк кода помечены как «зеленые»

Мне интересно, какие факторы могут быть причиной этой проблемы?

Один интересный момент, который может вызывать , это «косвенные вызовы». Этот конкретный контроллер является родителем ряда других контроллеров, и так как многие другие объекты наследуют его, может быть, код будет вызван в другом месте ... но тогда он не станет зеленым?

В его нынешнем виде единственным методом, который становится зеленым, является __construct метод.

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

Редактировать в ответ на комментарий Гаурава:

Командная строка phpunit: phpunit --configuration admin.xml

и admin.xml читает

 <phpunit bootstrap="./admin/applications/admin/bootstrap.php" colors="true">
     <testsuite name="AdminTestSuite">
        <directory suffix=".php">./admin/applications/admin/</directory>        
        <directory suffix=".php">./admin/applications/shared/</directory>
    </testsuite>
     <filter>
         <whitelist>
            <directory suffix=".php">../admin/applications/admin/controllers</directory>
            <directory suffix=".php">../admin/applications/shared/controllers</directory>           
            <directory suffix=".php">../admin/applications/shared/helpers</directory>
            <directory suffix=".php">../admin/lib/controllers</directory>           
            <directory suffix=".php">../admin/lib/helpers</directory>
            <directory suffix=".php">../admin/lib/models</directory>
            <directory suffix=".php">../admin/lib/utils</directory>         
         </whitelist>
         <blacklist>
                 <file>../dm_admin/applications/shared/controllers/DashboardController.php</file>
            <directory suffix=".php">../admin/lib/crons</directory>
         </blacklist>                
     </filter>
     <logging>
         <log type="coverage-html" target="/projects/ut/admin/" charset="UTF-8"
             yui="true" highlight="true"
             lowUpperBound="50" highLowerBound="80"/>
         <log type="testdox-html" target="/projects/ut/admin/testdox.html" />
     </logging>
 </phpunit>

В ответ на jakenoble:

помощник читает 100% покрытие Отчет читает 100% охват помощника

но внутри мы видим Некоторый текст вверху одного из методов - всего 1099 строк

Это продолжается для 1099 строк, иногда с зеленым ... но без красного.

1 Ответ

0 голосов
/ 27 января 2011

Отчет о покрытии кода показывает три разных результата: классы, методы и функции и строки.

Классы - это отчет о количестве классов, протестированных в сущности. Итак, если у вас есть один класс на файл, и вы тестируете часть этого класса, он показывает, как вы тестируете 100% классов.

Если у вас есть два класса в файле, и вы тестируете один класс, у вас будет 50% охват класса.

...