/** * 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); }