mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-30 02:32:41 +01:00
(stable) Promote 2016 Week 9
This commit is contained in:
commit
92a93ab8f4
1 changed files with 19 additions and 20 deletions
|
@ -129,34 +129,33 @@ final class ArcanistPhpunitTestResultParser extends ArcanistTestResultParser {
|
||||||
$line_count = count(file($class_path));
|
$line_count = count(file($class_path));
|
||||||
|
|
||||||
$coverage = '';
|
$coverage = '';
|
||||||
|
$any_line_covered = false;
|
||||||
$start_line = 1;
|
$start_line = 1;
|
||||||
$lines = $file->getElementsByTagName('line');
|
$lines = $file->getElementsByTagName('line');
|
||||||
for ($ii = 0; $ii < $lines->length; $ii++) {
|
|
||||||
$line = $lines->item($ii);
|
|
||||||
for (; $start_line < $line->getAttribute('num'); $start_line++) {
|
|
||||||
$coverage .= 'N';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$coverage = str_repeat('N', $line_count);
|
||||||
|
foreach ($lines as $line) {
|
||||||
if ($line->getAttribute('type') != 'stmt') {
|
if ($line->getAttribute('type') != 'stmt') {
|
||||||
$coverage .= 'N';
|
continue;
|
||||||
} else {
|
|
||||||
if ((int)$line->getAttribute('count') == 0) {
|
|
||||||
$coverage .= 'U';
|
|
||||||
} else if ((int)$line->getAttribute('count') > 0) {
|
|
||||||
$coverage .= 'C';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if ((int)$line->getAttribute('count') > 0) {
|
||||||
$start_line++;
|
$is_covered = 'C';
|
||||||
|
$any_line_covered = true;
|
||||||
|
} else {
|
||||||
|
$is_covered = 'U';
|
||||||
|
}
|
||||||
|
$line_no = (int)$line->getAttribute('num');
|
||||||
|
$coverage[$line_no - 1] = $is_covered;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (; $start_line <= $line_count; $start_line++) {
|
// Sometimes the Clover coverage gives false positives on uncovered lines
|
||||||
$coverage .= 'N';
|
// when the file wasn't actually part of the test. This filters out files
|
||||||
|
// with no coverage which helps give more accurate overall results.
|
||||||
|
if ($any_line_covered) {
|
||||||
|
$len = strlen($this->projectRoot.DIRECTORY_SEPARATOR);
|
||||||
|
$class_path = substr($class_path, $len);
|
||||||
|
$reports[$class_path] = $coverage;
|
||||||
}
|
}
|
||||||
|
|
||||||
$len = strlen($this->projectRoot.DIRECTORY_SEPARATOR);
|
|
||||||
$class_path = substr($class_path, $len);
|
|
||||||
$reports[$class_path] = $coverage;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $reports;
|
return $reports;
|
||||||
|
|
Loading…
Reference in a new issue