public static function handleError($level, $message, $file, $line) { $isFiltered = false; if (version_compare(PHPUnit_Runner_Version::id(), '3.5.0') >= 0) { $isFiltered = PHP_CodeCoverage::getInstance()->filter()->isFiltered($file, array(), true); } else { $isFiltered = PHPUnit_Util_Filter::isFiltered($file, true, true); } if (!$isFiltered) { return PHPUnit_Util_ErrorHandler::handleError($level, $message, $file, $line); } }
public static function appendCodeCoverageLog($data) { foreach (array_keys($data) as $file) { if (PHPUnit_Util_Filter::isFiltered($file, FALSE)) { unset($data[$file]); } } if (is_array($data) && count($data) > 0) { foreach ($data as $file => $lines) { if (!in_array($file, array_keys(self::$codeCoverageLog))) { self::$codeCoverageLog[$file] = $lines; } else { foreach ($lines as $lineNum => $lineInfo) { if (!in_array($lineNum, array_keys(self::$codeCoverageLog[$file]))) { self::$codeCoverageLog[$file][$lineNum] = $lineInfo; } else { if (is_array($lineInfo) && is_array(self::$codeCoverageLog[$file][$lineNum])) { foreach ($lineInfo as $flag => $flag_status) { if (!in_array($flag, array_keys(self::$codeCoverageLog[$file][$lineNum]))) { self::$codeCoverageLog[$file][$lineNum][$flag] = $flag_status; } else { if ($flag_status == 1 && self::$codeCoverageLog[$file][$lineNum][$flag] == 0) { self::$codeCoverageLog[$file][$lineNum][$flag] = 1; } elseif ($flag_status == 1 && self::$codeCoverageLog[$file][$lineNum][$flag] == 2) { self::$codeCoverageLog[$file][$lineNum][$flag] = 3; } elseif ($flag_status == 2 && self::$codeCoverageLog[$file][$lineNum][$flag] == 0) { self::$codeCoverageLog[$file][$lineNum][$flag] = 2; } elseif ($flag_status == 2 && self::$codeCoverageLog[$file][$lineNum][$flag] == 1) { self::$codeCoverageLog[$file][$lineNum][$flag] = 3; } elseif ($flag_status == 3) { self::$codeCoverageLog[$file][$lineNum][$flag] = 3; } } } } elseif (!is_array($lineInfo) && !is_array(self::$codeCoverageLog[$file][$lineNum])) { if ($lineInfo > 0 && !is_array(self::$codeCoverageLog[$file][$lineNum]) && self::$codeCoverageLog[$file][$lineNum] > 0) { self::$codeCoverageLog[$file][$lineNum] += $lineInfo; } elseif ($lineInfo > 0 && !is_array(self::$codeCoverageLog[$file][$lineNum]) && self::$codeCoverageLog[$file][$lineNum] <= 0) { self::$codeCoverageLog[$file][$lineNum] = $lineInfo; } } } } } } ksort(self::$codeCoverageLog[$file]); #var_dump(self::$codeCoverageLog); } }
/** * Appends code coverage information to the test * * @param PHPUnit_Framework_Test $test * @param array $data * @since Method available since Release 3.2.0 */ public function appendCodeCoverageInformation(PHPUnit_Framework_Test $test, $data) { $deadCode = array(); $executableCode = array(); foreach (array_keys($data) as $file) { if (PHPUnit_Util_Filter::isFiltered($file, FALSE)) { unset($data[$file]); } } $newFilesToCollect = array_diff_key($data, PHPUnit_Util_Filter::getCoveredFiles()); if (count($newFilesToCollect) > 0) { $deadCode = PHPUnit_Util_CodeCoverage::getDeadLines($newFilesToCollect); $executableCode = PHPUnit_Util_CodeCoverage::getExecutableLines($newFilesToCollect); foreach (array_keys($newFilesToCollect) as $file) { PHPUnit_Util_Filter::addCoveredFile($file); } unset($newFilesToCollect); } if ($test instanceof PHPUnit_Framework_TestCase) { $linesToBeCovered = PHPUnit_Util_Test::getLinesToBeCovered(get_class($test), $test->getName()); if (!empty($linesToBeCovered)) { $data = array_intersect_key($data, $linesToBeCovered); foreach (array_keys($data) as $file) { $data[$file] = array_intersect_key($data[$file], array_flip($linesToBeCovered[$file])); } } } $executed = PHPUnit_Util_CodeCoverage::getExecutedLines($data); unset($data); $this->codeCoverageInformation[] = array('test' => $test, 'files' => $executed, 'dead' => $deadCode, 'executable' => $executableCode); }
public static function handleError($level, $message, $file, $line) { if (!PHPUnit_Util_Filter::isFiltered($file, true, true)) { return PHPUnit_Util_ErrorHandler::handleError($level, $message, $file, $line); } }