Как исключить файлы/блоки кода из покрытия кода с помощью интеграции 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>