Esempio n. 1
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);
 }