Я запускаю серию тестов 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% покрытие
но внутри мы видим
Это продолжается для 1099 строк, иногда с зеленым ... но без красного.