本文整理汇总了PHP中PHPUnit_Util_Filesystem::reducePaths方法的典型用法代码示例。如果您正苦于以下问题:PHP PHPUnit_Util_Filesystem::reducePaths方法的具体用法?PHP PHPUnit_Util_Filesystem::reducePaths怎么用?PHP PHPUnit_Util_Filesystem::reducePaths使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHPUnit_Util_Filesystem
的用法示例。
在下文中一共展示了PHPUnit_Util_Filesystem::reducePaths方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: render
/**
* Renders the report.
*
* @param PHPUnit_Framework_TestResult $result
* @param string $title
* @param string $target
* @param string $charset
* @param boolean $yui
* @param boolean $highlight
* @param integer $lowUpperBound
* @param integer $highLowerBound
*/
public static function render(PHPUnit_Framework_TestResult $result, $target, $title = '', $charset = 'ISO-8859-1', $yui = TRUE, $highlight = FALSE, $lowUpperBound = 35, $highLowerBound = 70)
{
$target = PHPUnit_Util_Filesystem::getDirectory($target);
self::$templatePath = sprintf('%s%sReport%sTemplate%s', dirname(__FILE__), DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR);
$codeCoverageInformation = $result->getCodeCoverageInformation();
$files = PHPUnit_Util_CodeCoverage::getSummary($codeCoverageInformation);
$commonPath = PHPUnit_Util_Filesystem::reducePaths($files);
$items = self::buildDirectoryStructure($files);
unset($codeCoverageInformation);
if ($title == '') {
$topTestSuite = $result->topTestSuite();
if ($topTestSuite instanceof PHPUnit_Framework_TestSuite) {
$title = $topTestSuite->getName();
}
}
unset($result);
$root = new PHPUnit_Util_Report_Node_Directory($commonPath, NULL);
self::addItems($root, $items, $files, $yui, $highlight);
self::copyFiles($target);
PHPUnit_Util_CodeCoverage::clearSummary();
$root->render($target, $title, $charset, $lowUpperBound, $highLowerBound);
}
示例2: process
/**
* @param PHPUnit_Framework_TestResult $result
*/
public function process(PHPUnit_Framework_TestResult $result)
{
$sutData = $result->getCodeCoverageInformation();
$sutFiles = PHPUnit_Util_CodeCoverage::getSummary($sutData, TRUE);
$allData = $result->getCodeCoverageInformation(FALSE);
$allFiles = PHPUnit_Util_CodeCoverage::getSummary($allData, TRUE);
$testFiles = array_diff(array_keys($allFiles), array_keys($sutFiles));
foreach (array_keys($allFiles) as $key) {
if (!@in_array($key, $testFiles)) {
unset($allFiles[$key]);
}
}
$allCommonPath = PHPUnit_Util_Filesystem::reducePaths($allFiles);
$sutCommonPath = PHPUnit_Util_Filesystem::reducePaths($sutFiles);
$testFiles = $allFiles;
unset($allData);
unset($allFiles);
unset($sutData);
$testToCoveredLinesMap = array();
$time = time();
foreach ($sutFiles as $filename => $data) {
$fullPath = $sutCommonPath . DIRECTORY_SEPARATOR . $filename;
if (file_exists($fullPath)) {
$fullPath = realpath($fullPath);
$document = new DOMDocument('1.0', 'UTF-8');
$document->formatOutput = TRUE;
$coveredFile = $document->createElement('coveredFile');
$coveredFile->setAttribute('fullPath', $fullPath);
$coveredFile->setAttribute('shortenedPath', $filename);
$coveredFile->setAttribute('generated', $time);
$coveredFile->setAttribute('phpunit', PHPUnit_Runner_Version::id());
$document->appendChild($coveredFile);
$lines = file($fullPath, FILE_IGNORE_NEW_LINES);
$lineNum = 1;
foreach ($lines as $line) {
if (isset($data[$lineNum])) {
if (is_array($data[$lineNum])) {
$count = count($data[$lineNum]);
} else {
$count = $data[$lineNum];
}
} else {
$count = -3;
}
$xmlLine = $coveredFile->appendChild($document->createElement('line'));
$xmlLine->setAttribute('lineNumber', $lineNum);
$xmlLine->setAttribute('executed', $count);
$xmlLine->appendChild($document->createElement('body', htmlspecialchars(PHPUnit_Util_XML::convertToUtf8($line), ENT_COMPAT, 'UTF-8')));
if (isset($data[$lineNum]) && is_array($data[$lineNum])) {
$xmlTests = $document->createElement('tests');
$xmlLine->appendChild($xmlTests);
foreach ($data[$lineNum] as $test) {
$xmlTest = $xmlTests->appendChild($document->createElement('test'));
if ($test instanceof PHPUnit_Framework_TestCase) {
$xmlTest->setAttribute('name', $test->getName());
$xmlTest->setAttribute('status', $test->getStatus());
if ($test->hasFailed()) {
$xmlTest->appendChild($document->createElement('message', htmlspecialchars(PHPUnit_Util_XML::convertToUtf8($test->getStatusMessage()), ENT_COMPAT, 'UTF-8')));
}
$class = new ReflectionClass($test);
$testFullPath = $class->getFileName();
$testShortenedPath = str_replace($allCommonPath, '', $testFullPath);
$methodName = $test->getName(FALSE);
if ($class->hasMethod($methodName)) {
$method = $class->getMethod($methodName);
$startLine = $method->getStartLine();
$xmlTest->setAttribute('class', $class->getName());
$xmlTest->setAttribute('fullPath', $testFullPath);
$xmlTest->setAttribute('shortenedPath', $testShortenedPath);
$xmlTest->setAttribute('line', $startLine);
if (!isset($testToCoveredLinesMap[$testFullPath][$startLine])) {
$testToCoveredLinesMap[$testFullPath][$startLine] = array();
}
if (!isset($testToCoveredLinesMap[$testFullPath][$startLine][$fullPath])) {
$testToCoveredLinesMap[$testFullPath][$startLine][$fullPath] = array('coveredLines' => array($lineNum), 'shortenedPath' => $filename);
} else {
$testToCoveredLinesMap[$testFullPath][$startLine][$fullPath]['coveredLines'][] = $lineNum;
}
}
}
}
}
$lineNum++;
}
$document->save(sprintf('%s%s.xml', $this->directory, PHPUnit_Util_Filesystem::getSafeFilename(str_replace(DIRECTORY_SEPARATOR, '_', $filename))));
}
}
foreach ($testFiles as $filename => $data) {
$fullPath = $allCommonPath . DIRECTORY_SEPARATOR . $filename;
if (file_exists($fullPath)) {
$document = new DOMDocument('1.0', 'UTF-8');
$document->formatOutput = TRUE;
$testFile = $document->createElement('testFile');
$testFile->setAttribute('fullPath', $fullPath);
$testFile->setAttribute('shortenedPath', $filename);
$testFile->setAttribute('generated', $time);
$testFile->setAttribute('phpunit', PHPUnit_Runner_Version::id());
//.........这里部分代码省略.........