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);
     }
 }
Exemple #3
0
 /**
  * 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);
 }
Exemple #4
0
 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);
     }
 }