/** * 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 (sizeof($newFilesToCollect) > 0) { $deadCode = PHPUnit_Util_CodeCoverage::codeCoverageToBitString($newFilesToCollect, array(-2)); $executableCode = PHPUnit_Util_CodeCoverage::codeCoverageToBitString($newFilesToCollect, array(-1, 1)); 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::codeCoverageToBitString($data, array(1)); unset($data); $result = array('test' => $test, 'files' => $executed, 'dead' => $deadCode, 'executable' => $executableCode); $this->codeCoverageInformation[] = $result; }