Как исключить файлы/блоки кода из покрытия кода с помощью интеграции Netbeans/PHPStorm/PHPUnit
Требования:
- Netbeans с PHPUnit (6.9)
- EDIT: То же самое относится, например, к PHPStorm
Как сделать:
- Исключить строки из охвата кода.
- Исключить блоки кода (строки) из охвата кода.
Ответы
Ответ 1
Если вы пытаетесь достичь 100% -ного охвата кода, но имеете одну или несколько строк, которые вы не можете проверить, вы можете окружить их специальными аннотациями. Они будут проигнорированы в отчете о покрытии кода.
if (($result = file_get_contenst($url)) === false) {
// @codeCoverageIgnoreStart
$this->handleError($url);
// @codeCoverageIgnoreEnd
}
Изменить: Я обнаружил, что Xdebug часто считает, что заключительная фигурная скобка является исполняемой.:( Если это произойдет, переместите конечный тег под ним.
Ответ 2
Чтобы игнорировать блоки кода метода:
/**
* @codeCoverageIgnore
*/
function functionToBeIgnored() {
// function implementation
}
Чтобы игнорировать блоки кода классов:
/**
* @codeCoverageIgnore
*/
class Foo {
// class implementation
}
И как сказал @david-harkness, чтобы игнорировать отдельные строки:
// @codeCoverageIgnoreStart
print 'this line ignored for code coverage';
// @codeCoverageIgnoreEnd
Дополнительную информацию можно найти в документации PHPUnit в разделе Игнорирование блоков кода.
Ответ 3
Сначала убедитесь, что у вас есть последний и самый большой phpunit, иначе пропущенный код может отсутствовать. Затем создайте файл phpunit.xml
, который выглядит примерно так:
<phpunit colors="true">
<filter>
<blacklist>
<file>file1.php</file>
<file>file2.php</file>
</blacklist>
</filter>
</phpunit>