Skip to content

Commit f0c61aa

Browse files
- Use consistent order for attributes on <metrics> elements
- Set complexity attribute on the <metrics> element under <file> - Generate <metrics> element as first child of <package> element
1 parent 3cb2a98 commit f0c61aa

File tree

5 files changed

+45
-29
lines changed

5 files changed

+45
-29
lines changed

src/Report/Clover.php

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,14 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string
123123

124124
$xmlMetrics = $xmlDocument->createElement('metrics');
125125
$xmlMetrics->setAttribute('complexity', (string) $class['ccn']);
126-
$xmlMetrics->setAttribute('methods', (string) $classMethods);
127-
$xmlMetrics->setAttribute('coveredmethods', (string) $coveredMethods);
126+
$xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class['executableBranches']));
127+
$xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class['executedBranches']));
128128
$xmlMetrics->setAttribute('conditionals', (string) $class['executableBranches']);
129129
$xmlMetrics->setAttribute('coveredconditionals', (string) $class['executedBranches']);
130130
$xmlMetrics->setAttribute('statements', (string) $classStatements);
131131
$xmlMetrics->setAttribute('coveredstatements', (string) $coveredClassStatements);
132-
$xmlMetrics->setAttribute('elements', (string) ($classMethods + $classStatements + $class['executableBranches']));
133-
$xmlMetrics->setAttribute('coveredelements', (string) ($coveredMethods + $coveredClassStatements + $class['executedBranches']));
132+
$xmlMetrics->setAttribute('methods', (string) $classMethods);
133+
$xmlMetrics->setAttribute('coveredmethods', (string) $coveredMethods);
134134
$xmlClass->insertBefore($xmlMetrics, $xmlClass->firstChild);
135135
}
136136

@@ -177,22 +177,34 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string
177177
$xmlMetrics->setAttribute('loc', (string) $linesOfCode->linesOfCode());
178178
$xmlMetrics->setAttribute('ncloc', (string) $linesOfCode->nonCommentLinesOfCode());
179179
$xmlMetrics->setAttribute('classes', (string) $item->numberOfClassesAndTraits());
180-
$xmlMetrics->setAttribute('methods', (string) $item->numberOfMethods());
181-
$xmlMetrics->setAttribute('coveredmethods', (string) $item->numberOfTestedMethods());
180+
$xmlMetrics->setAttribute('complexity', (string) $item->cyclomaticComplexity());
181+
$xmlMetrics->setAttribute('elements', (string) ($item->numberOfMethods() + $item->numberOfExecutableLines() + $item->numberOfExecutableBranches()));
182+
$xmlMetrics->setAttribute('coveredelements', (string) ($item->numberOfTestedMethods() + $item->numberOfExecutedLines() + $item->numberOfExecutedBranches()));
182183
$xmlMetrics->setAttribute('conditionals', (string) $item->numberOfExecutableBranches());
183184
$xmlMetrics->setAttribute('coveredconditionals', (string) $item->numberOfExecutedBranches());
184185
$xmlMetrics->setAttribute('statements', (string) $item->numberOfExecutableLines());
185186
$xmlMetrics->setAttribute('coveredstatements', (string) $item->numberOfExecutedLines());
186-
$xmlMetrics->setAttribute('elements', (string) ($item->numberOfMethods() + $item->numberOfExecutableLines() + $item->numberOfExecutableBranches()));
187-
$xmlMetrics->setAttribute('coveredelements', (string) ($item->numberOfTestedMethods() + $item->numberOfExecutedLines() + $item->numberOfExecutedBranches()));
187+
$xmlMetrics->setAttribute('methods', (string) $item->numberOfMethods());
188+
$xmlMetrics->setAttribute('coveredmethods', (string) $item->numberOfTestedMethods());
188189
$xmlFile->insertBefore($xmlMetrics, $xmlFile->firstChild);
189190

190191
if (!isset($packages[$namespace])) {
191-
$packages[$namespace] = $xmlDocument->createElement(
192-
'package',
193-
);
194-
192+
$packages[$namespace] = $xmlDocument->createElement('package');
195193
$packages[$namespace]->setAttribute('name', $namespace);
194+
195+
$xmlPackageMetrics = $xmlDocument->createElement('metrics');
196+
// @todo Set attributes to actual values
197+
$xmlPackageMetrics->setAttribute('complexity', '0');
198+
$xmlPackageMetrics->setAttribute('elements', '0');
199+
$xmlPackageMetrics->setAttribute('coveredelements', '0');
200+
$xmlPackageMetrics->setAttribute('conditionals', '0');
201+
$xmlPackageMetrics->setAttribute('coveredconditionals', '0');
202+
$xmlPackageMetrics->setAttribute('statements', '0');
203+
$xmlPackageMetrics->setAttribute('coveredstatements', '0');
204+
$xmlPackageMetrics->setAttribute('methods', '0');
205+
$xmlPackageMetrics->setAttribute('coveredmethods', '0');
206+
$packages[$namespace]->appendChild($xmlPackageMetrics);
207+
196208
$xmlProject->appendChild($packages[$namespace]);
197209
}
198210

@@ -206,15 +218,15 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string
206218
$xmlMetrics->setAttribute('loc', (string) $linesOfCode->linesOfCode());
207219
$xmlMetrics->setAttribute('ncloc', (string) $linesOfCode->nonCommentLinesOfCode());
208220
$xmlMetrics->setAttribute('classes', (string) $report->numberOfClassesAndTraits());
209-
$xmlMetrics->setAttribute('methods', (string) $report->numberOfMethods());
210-
$xmlMetrics->setAttribute('coveredmethods', (string) $report->numberOfTestedMethods());
211221
$xmlMetrics->setAttribute('complexity', (string) $report->cyclomaticComplexity());
222+
$xmlMetrics->setAttribute('elements', (string) ($report->numberOfMethods() + $report->numberOfExecutableLines() + $report->numberOfExecutableBranches()));
223+
$xmlMetrics->setAttribute('coveredelements', (string) ($report->numberOfTestedMethods() + $report->numberOfExecutedLines() + $report->numberOfExecutedBranches()));
212224
$xmlMetrics->setAttribute('conditionals', (string) $report->numberOfExecutableBranches());
213225
$xmlMetrics->setAttribute('coveredconditionals', (string) $report->numberOfExecutedBranches());
214226
$xmlMetrics->setAttribute('statements', (string) $report->numberOfExecutableLines());
215227
$xmlMetrics->setAttribute('coveredstatements', (string) $report->numberOfExecutedLines());
216-
$xmlMetrics->setAttribute('elements', (string) ($report->numberOfMethods() + $report->numberOfExecutableLines() + $report->numberOfExecutableBranches()));
217-
$xmlMetrics->setAttribute('coveredelements', (string) ($report->numberOfTestedMethods() + $report->numberOfExecutedLines() + $report->numberOfExecutedBranches()));
228+
$xmlMetrics->setAttribute('methods', (string) $report->numberOfMethods());
229+
$xmlMetrics->setAttribute('coveredmethods', (string) $report->numberOfTestedMethods());
218230
$xmlProject->insertBefore($xmlMetrics, $xmlProject->firstChild);
219231

220232
$buffer = $xmlDocument->saveXML();

tests/_files/BankAccount-clover-line.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<coverage clover="%s" generated="%i">
33
<project timestamp="%i" name="BankAccount">
4-
<metrics files="1" loc="35" ncloc="35" classes="1" methods="4" coveredmethods="3" complexity="5" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" elements="12" coveredelements="8"/>
4+
<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"/>
67
<file name="BankAccount.php" path="%s%eBankAccount.php">
7-
<metrics loc="35" ncloc="35" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" elements="12" coveredelements="8"/>
8+
<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"/>
89
<class name="BankAccount" namespace="global">
9-
<metrics complexity="5" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" elements="12" coveredelements="8"/>
10+
<metrics complexity="5" elements="12" coveredelements="8" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" methods="4" coveredmethods="3"/>
1011
</class>
1112
<line num="6" type="method" name="getBalance" visibility="public" complexity="1" crap="1" count="2"/>
1213
<line num="8" type="stmt" count="2"/>

tests/_files/BankAccount-clover-path.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<coverage clover="%s" generated="%i">
33
<project timestamp="%i" name="BankAccount">
4-
<metrics files="1" loc="35" ncloc="35" classes="1" methods="4" coveredmethods="3" complexity="5" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" elements="19" coveredelements="11"/>
4+
<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"/>
67
<file name="BankAccount.php" path="%s%eBankAccount.php">
7-
<metrics loc="35" ncloc="35" classes="1" methods="4" coveredmethods="3" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" elements="19" coveredelements="11"/>
8+
<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"/>
89
<class name="BankAccount" namespace="global">
9-
<metrics complexity="5" methods="4" coveredmethods="3" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" elements="19" coveredelements="11"/>
10+
<metrics complexity="5" elements="19" coveredelements="11" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" methods="4" coveredmethods="3"/>
1011
</class>
1112
<line num="6" type="method" name="getBalance" visibility="public" complexity="1" crap="1" count="2"/>
1213
<line num="8" type="stmt" count="2"/>

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<coverage clover="%s" generated="%i">
33
<project timestamp="%i">
4-
<metrics files="1" loc="20" ncloc="19" classes="1" methods="1" coveredmethods="1" complexity="1" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="9" coveredelements="9"/>
4+
<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"/>
67
<file name="source_with_class_and_anonymous_function.php" path="%s%esource_with_class_and_anonymous_function.php">
7-
<metrics loc="20" ncloc="19" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="9" coveredelements="9"/>
8+
<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"/>
89
<class name="CoveredClassWithAnonymousFunctionInStaticMethod" namespace="global">
9-
<metrics complexity="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="9" coveredelements="9"/>
10+
<metrics complexity="1" elements="9" coveredelements="9" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" methods="1" coveredmethods="1"/>
1011
</class>
1112
<line num="5" type="method" name="runAnonymous" visibility="public" complexity="1" crap="1" count="1"/>
1213
<line num="7" type="stmt" count="1"/>

tests/_files/ignored-lines-clover.xml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<coverage clover="%s" generated="%i">
33
<project timestamp="%i">
4-
<metrics files="1" loc="43" ncloc="32" classes="0" methods="0" coveredmethods="0" complexity="3" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="1" coveredelements="1"/>
4+
<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"/>
67
<file name="source_with_ignore.php" path="%s%esource_with_ignore.php">
7-
<metrics loc="43" ncloc="32" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="1" coveredelements="1"/>
8+
<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"/>
89
<class name="Foo" namespace="global">
9-
<metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
10+
<metrics complexity="1" elements="0" coveredelements="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" methods="0" coveredmethods="0"/>
1011
</class>
1112
<class name="Bar" namespace="global">
12-
<metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
13+
<metrics complexity="1" elements="0" coveredelements="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" methods="0" coveredmethods="0"/>
1314
</class>
1415
<line num="2" type="stmt" count="1"/>
1516
</file>

0 commit comments

Comments
 (0)