Я пытаюсь настроить покрытие кода для phpunit для определенного каталога. Может кто-нибудь сказать мне, в чем разница между:
<filter> <whitelist> <directory suffix=".php">lib/</directory> </whitelist> </filter>
а также
<filter> <whitelist addUncoveredFilesFromWhitelist="true"> <directory suffix=".php">lib/</directory> </whitelist> </filter>
а также
<filter> <whitelist processUncoveredFilesFromWhitelist="true"> <directory suffix=".php">lib/</directory> </whitelist> </filter>
В настоящее время первые два варианта будут работать (с разными номерами покрытия), но третий будет терпеть неудачу с ошибками, похожими на Как добавить непокрытые файлы в отчет о охвате кода PHPUnit приложения Yii .
Просто начать с phpunit и хотел бы понять различия между этими вариантами «белого списка». Я читал официальные документы об этом, но я не уверен, что понимаю.
Быстрый взгляд в исходном коде пакета php-code-coverage пакетов php-code-coverage на GitHub показывает правду:
addUncoveredFilesFromWhitelist имеет значение FALSE тогда покрытие кода содержит информацию о файлах, которые были загружены и выполнены (включены только строки, содержащие код); processUncoveredFilesFromWhitelist в этом случае игнорируется; addUncoveredFilesFromWhitelist имеет значение TRUE тогда файлы из белого списка, которые не были загружены и выполнены, также будут включены в покрытие кода:
processUncoveredFilesFromWhitelist FALSE то файлы не обрабатываются каким-либо образом; все их строки появятся в охвате кода как не исполняемые, даже пустые строки и строки, содержащие только комментарии; это быстрый и грязный способ добиться этого; processUncoveredFilesFromWhitelist имеет значение TRUE тогда файлы включаются и используются функции покрытия кода XDebug (то же самое, что и для фактически запущенных файлов), чтобы помещать в отчет только строки, содержащие код; это медленный рабочий процесс. Значение по умолчанию для addUncoveredFilesFromWhitelist равно TRUE а для processUncoveredFilesFromWhitelist – FALSE . Это означает, что файлы из белого списка, которые не были охвачены (поскольку они не запускались), включаются в отчет, используя быстрый способ и отчет о покрытии, а точную ( 0% ), вычисляют, используя общее количество строк немного больше чем реальный.
Однако, поскольку 0 из чего-либо все еще 0% , он считает, что это лучший способ включить обнаруженные файлы в отчет.
Поэтому я думаю, что ошибался. Вот что должна сказать об этом документация:
Необязательно, все белые списки можно добавить в отчет о покрытии кода, установив addUncoveredFilesFromWhitelist = "true" в вашу конфигурацию PHPUnit (см. Раздел «Включение и исключение файлов для покрытия кода»). Это позволяет включить файлы, которые еще не протестированы. Если вы хотите получить информацию о том, какие строки такого непокрытого файла исполняются, например, вам также необходимо установить processUncoveredFilesFromWhitelist = «true» в вашей конфигурации PHPUnit (см. Раздел «Включение и исключение файлов для покрытия кода»).
Поэтому ответ здесь заключается в том, что adding непокрытых файлов будет включать их в отчет о покрытии, но на самом деле их processing будет собирать дополнительную информацию.
оригинал
Смотрите этот твиттерский разговор от Себастьяна. Немного сложно рассказать о трезвости твиттера, но похоже, что addUncoveredFilesFromWhitelist может быть просто старой формой той же функциональности, что processUncoveredFilesFromWhitelist предоставляет устаревший код.
Содержание твиттер-беседы:
@ user1: В @phpunit, в чем разница между addUncoveredFilesFromWhitelist = "true" и processUncoveredFilesFromWhitelist = "true"?
@s_bergmann: вы хотите использовать processUncoveredFilesFromWhitelist. Если он не работает (устаревший код), используйте addUncoveredFilesFromWhitelist