покрытие кода модульного тестирования php с помощью диска Pcov проблемы с function_exists

#php #unit-testing #pcov

Вопрос:

введите описание изображения здесь

если (!function_exists(‘день рождения_то_аж’)) {

 /**
 * calculate the age of input date
 * @param Carbon $date input date
 * @return int the age
 */
function birthday_to_age(Carbon $date): int
{
    return floor((date('Ymd') - $date->format('Ymd')) / 10000);
}
 

}

если (!function_exists(‘log_http_client_response’)) {

 /**
 * Function log_http_client_response
 * @param Response $response
 * @param string $prefix
 * @param string $level
 */
function log_http_client_response(Response $response, string $prefix = '', string $level = 'debug')
{
    $content = $prefix . "Response http_status: {$response->status()}, http_headers: "
        . json_encode($response->headers()) . ", http_body: {$response->body()}";
    Log::$level($content);
}
 

}

Отчет о покрытии показал две строки «если (!function_exists(‘имя_функции’))», которые не были охвачены, но эти две функции в «если» были охвачены. Это смешно, потому что, когда я использовал xdebug в качестве драйвера, эти две строки были покрыты, но когда я сменил драйвер на pcov без каких-либо других изменений, возникла проблема.

Сталкивался ли кто-нибудь с этой проблемой? кто-нибудь знает, как охватить эти две строки?

Спасибо