diff --git a/PHP/CodeCoverage/Report/Clover.php b/PHP/CodeCoverage/Report/Clover.php index 05f9eee43..a5f3c47b6 100644 --- a/PHP/CodeCoverage/Report/Clover.php +++ b/PHP/CodeCoverage/Report/Clover.php @@ -102,47 +102,26 @@ public function process(PHP_CodeCoverage $coverage, $target = NULL, $name = NULL $classStatements = 0; $coveredClassStatements = 0; $coveredMethods = 0; + $classMethods = 0; foreach ($class['methods'] as $methodName => $method) { - $methodCount = 0; - $methodLines = 0; - $methodLinesCovered = 0; + if ($method['executableLines'] == 0) + continue; + $classMethods++; + $classStatements += $method['executableLines']; + $coveredClassStatements += $method['executedLines']; + if ($method['coverage'] == 100){ + $coveredMethods++; + } + + $methodCount = 0; for ($i = $method['startLine']; $i <= $method['endLine']; $i++) { - $add = TRUE; - $count = 0; - - if (isset($coverage[$i])) { - if ($coverage[$i] !== NULL) { - $classStatements++; - $methodLines++; - } else { - $add = FALSE; - } - - $count = count($coverage[$i]); - - if ($count > 0) { - $coveredClassStatements++; - $methodLinesCovered++; - } - } else { - $add = FALSE; + if (isset($coverage[$i]) && ($coverage[$i] !== NULL)) { + $methodCount = max($methodCount, count($coverage[$i])); } - - $methodCount = max($methodCount, $count); - - if ($add) { - $lines[$i] = array( - 'count' => $count, 'type' => 'stmt' - ); - } - } - - if ($methodCount > 0) { - $coveredMethods++; } $lines[$method['startLine']] = array( @@ -188,7 +167,7 @@ public function process(PHP_CodeCoverage $coverage, $target = NULL, $name = NULL $xmlFile->appendChild($xmlClass); $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('methods', count($class['methods'])); + $xmlMetrics->setAttribute('methods', $classMethods); $xmlMetrics->setAttribute('coveredmethods', $coveredMethods); $xmlMetrics->setAttribute('conditionals', 0); $xmlMetrics->setAttribute('coveredconditionals', 0); @@ -198,7 +177,7 @@ public function process(PHP_CodeCoverage $coverage, $target = NULL, $name = NULL ); $xmlMetrics->setAttribute( 'elements', - count($class['methods']) + + $classMethods + $classStatements /* + conditionals */); $xmlMetrics->setAttribute( diff --git a/Tests/_files/class-with-anonymous-function-clover.xml b/Tests/_files/class-with-anonymous-function-clover.xml index 11e9c1856..841df2d69 100644 --- a/Tests/_files/class-with-anonymous-function-clover.xml +++ b/Tests/_files/class-with-anonymous-function-clover.xml @@ -3,7 +3,7 @@ - + diff --git a/Tests/_files/ignored-lines-clover.xml b/Tests/_files/ignored-lines-clover.xml index 4da74483c..f63204002 100644 --- a/Tests/_files/ignored-lines-clover.xml +++ b/Tests/_files/ignored-lines-clover.xml @@ -3,15 +3,13 @@ - + - + - -