Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit ae58ec4

Browse files
committedMay 22, 2025··
Set attributes of <metrics> element under <package> to actual values
1 parent 1f41778 commit ae58ec4

File tree

5 files changed

+19
-5
lines changed

5 files changed

+19
-5
lines changed
 

‎src/Report/Clover.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
namespace SebastianBergmann\CodeCoverage\Report;
1111

12+
use function assert;
1213
use function basename;
1314
use function count;
1415
use function dirname;
@@ -189,7 +190,6 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string
189190
$packages[$namespace]->setAttribute('name', $namespace);
190191

191192
$xmlPackageMetrics = $xmlDocument->createElement('metrics');
192-
// @todo Set attributes to actual values
193193
$xmlPackageMetrics->setAttribute('complexity', '0');
194194
$xmlPackageMetrics->setAttribute('elements', '0');
195195
$xmlPackageMetrics->setAttribute('coveredelements', '0');
@@ -204,6 +204,20 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string
204204
$xmlProject->appendChild($packages[$namespace]);
205205
}
206206

207+
$xmlPackageMetrics = $packages[$namespace]->firstChild;
208+
209+
assert($xmlPackageMetrics instanceof DOMElement);
210+
211+
$xmlPackageMetrics->setAttribute('complexity', (string) ((int) $xmlPackageMetrics->getAttribute('complexity') + $item->cyclomaticComplexity()));
212+
$xmlPackageMetrics->setAttribute('elements', (string) ((int) $xmlPackageMetrics->getAttribute('elements') + $item->numberOfMethods() + $item->numberOfExecutableLines() + $item->numberOfExecutableBranches()));
213+
$xmlPackageMetrics->setAttribute('coveredelements', (string) ((int) $xmlPackageMetrics->getAttribute('coveredelements') + $item->numberOfTestedMethods() + $item->numberOfExecutedLines() + $item->numberOfExecutedBranches()));
214+
$xmlPackageMetrics->setAttribute('conditionals', (string) ((int) $xmlPackageMetrics->getAttribute('conditionals') + $item->numberOfExecutableBranches()));
215+
$xmlPackageMetrics->setAttribute('coveredconditionals', (string) ((int) $xmlPackageMetrics->getAttribute('coveredconditionals') + $item->numberOfExecutedBranches()));
216+
$xmlPackageMetrics->setAttribute('statements', (string) ((int) $xmlPackageMetrics->getAttribute('statements') + $item->numberOfExecutableLines()));
217+
$xmlPackageMetrics->setAttribute('coveredstatements', (string) ((int) $xmlPackageMetrics->getAttribute('coveredstatements') + $item->numberOfExecutedLines()));
218+
$xmlPackageMetrics->setAttribute('methods', (string) ((int) $xmlPackageMetrics->getAttribute('methods') + $item->numberOfMethods()));
219+
$xmlPackageMetrics->setAttribute('coveredmethods', (string) ((int) $xmlPackageMetrics->getAttribute('coveredmethods') + $item->numberOfTestedMethods()));
220+
207221
$packages[$namespace]->appendChild($xmlFile);
208222
}
209223

‎tests/_files/BankAccount-clover-line.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<project timestamp="%i" name="BankAccount">
44
<metrics files="1" loc="35" ncloc="35" classes="1" complexity="5" elements="12" coveredelements="8" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" methods="4" coveredmethods="3"/>
55
<package name="global">
6-
<metrics complexity="0" elements="0" coveredelements="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" methods="0" coveredmethods="0"/>
6+
<metrics complexity="5" elements="12" coveredelements="8" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" methods="4" coveredmethods="3"/>
77
<file name="BankAccount.php" path="%s%eBankAccount.php">
88
<metrics loc="35" ncloc="35" classes="1" complexity="5" elements="12" coveredelements="8" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" methods="4" coveredmethods="3"/>
99
<class name="BankAccount">

‎tests/_files/BankAccount-clover-path.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<project timestamp="%i" name="BankAccount">
44
<metrics files="1" loc="35" ncloc="35" classes="1" complexity="5" elements="19" coveredelements="11" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" methods="4" coveredmethods="3"/>
55
<package name="global">
6-
<metrics complexity="0" elements="0" coveredelements="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" methods="0" coveredmethods="0"/>
6+
<metrics complexity="5" elements="19" coveredelements="11" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" methods="4" coveredmethods="3"/>
77
<file name="BankAccount.php" path="%s%eBankAccount.php">
88
<metrics loc="35" ncloc="35" classes="1" complexity="5" elements="19" coveredelements="11" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" methods="4" coveredmethods="3"/>
99
<class name="BankAccount">

‎tests/_files/class-with-anonymous-function-clover.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<project timestamp="%i">
44
<metrics files="1" loc="20" ncloc="19" classes="1" complexity="1" elements="9" coveredelements="9" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" methods="1" coveredmethods="1"/>
55
<package name="global">
6-
<metrics complexity="0" elements="0" coveredelements="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" methods="0" coveredmethods="0"/>
6+
<metrics complexity="1" elements="9" coveredelements="9" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" methods="1" coveredmethods="1"/>
77
<file name="source_with_class_and_anonymous_function.php" path="%s%esource_with_class_and_anonymous_function.php">
88
<metrics loc="20" ncloc="19" classes="1" complexity="1" elements="9" coveredelements="9" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" methods="1" coveredmethods="1"/>
99
<class name="CoveredClassWithAnonymousFunctionInStaticMethod">

‎tests/_files/ignored-lines-clover.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<project timestamp="%i">
44
<metrics files="1" loc="43" ncloc="32" classes="0" complexity="3" elements="1" coveredelements="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" methods="0" coveredmethods="0"/>
55
<package name="global">
6-
<metrics complexity="0" elements="0" coveredelements="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" methods="0" coveredmethods="0"/>
6+
<metrics complexity="3" elements="1" coveredelements="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" methods="0" coveredmethods="0"/>
77
<file name="source_with_ignore.php" path="%s%esource_with_ignore.php">
88
<metrics loc="43" ncloc="32" classes="0" complexity="3" elements="1" coveredelements="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" methods="0" coveredmethods="0"/>
99
<class name="Foo">

0 commit comments

Comments
 (0)
Please sign in to comment.