Покрытие кода PHPUnit сообщает о 100% покрытии для следующей функции, которая явно неверна:
public function run(){
foreach ([1] as $value) {
if($value === 1 ){
echo "Is called\n"; // TRUE positive
}
else{
echo "Not called\n"; // TRUE negative
echo "Not called either\n"; // FALSE positive
}
}
}
Последняя строка echo "Not called either"
не выполняется, но в отчете говорится, что это так! *
Если я преобразовываю тело цикла foreach в другую функцию, отчет становится корректным:
public function run(){
foreach ([1] as $value) {
$this->run2($value);
}
}
public function run2($value){
if($value === 1 ){
echo "Is called\n"; // TRUE positive
}
else{
echo "Not called\n"; // TRUE negative
echo "Not called either\n"; // TRUE negative
}
}
Протестировано с использованием php-code-покрытие 6.0.7 с использованием PHP 7.2.10-0ubuntu0.18.04.1 сXdebug 2.6.0 и PHPUnit 7.3.2
Я попробовал несколько более старых версий phpunit и получил те же результаты.
Это ошибка или я что-то здесь упустил?