Skip to content

Commit 99f27bc

Browse files
Set complexity attribute on the <metrics> element under <project>
1 parent 944df44 commit 99f27bc

File tree

6 files changed

+23
-4
lines changed

6 files changed

+23
-4
lines changed

src/Node/AbstractNode.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,24 @@ public function numberOfTestedFunctionsAndMethods(): int
178178
return $this->numberOfTestedFunctions() + $this->numberOfTestedMethods();
179179
}
180180

181+
/**
182+
* @return non-negative-int
183+
*/
184+
public function cyclomaticComplexity(): int
185+
{
186+
$ccn = 0;
187+
188+
foreach ($this->classesAndTraits() as $classLike) {
189+
$ccn += $classLike['ccn'];
190+
}
191+
192+
foreach ($this->functions() as $function) {
193+
$ccn += $function['ccn'];
194+
}
195+
196+
return $ccn;
197+
}
198+
181199
/**
182200
* @return array<string, ProcessedClassType>
183201
*/

src/Report/Clover.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ public function process(CodeCoverage $coverage, ?string $target = null, ?string
206206
$xmlMetrics->setAttribute('classes', (string) $report->numberOfClassesAndTraits());
207207
$xmlMetrics->setAttribute('methods', (string) $report->numberOfMethods());
208208
$xmlMetrics->setAttribute('coveredmethods', (string) $report->numberOfTestedMethods());
209+
$xmlMetrics->setAttribute('complexity', (string) $report->cyclomaticComplexity());
209210
$xmlMetrics->setAttribute('conditionals', (string) $report->numberOfExecutableBranches());
210211
$xmlMetrics->setAttribute('coveredconditionals', (string) $report->numberOfExecutedBranches());
211212
$xmlMetrics->setAttribute('statements', (string) $report->numberOfExecutableLines());

tests/_files/BankAccount-clover-line.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
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" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" elements="12" coveredelements="8"/>
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"/>
55
<package name="global">
66
<file name="BankAccount.php" path="%s%eBankAccount.php">
77
<metrics loc="35" ncloc="35" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="5" elements="12" coveredelements="8"/>

tests/_files/BankAccount-clover-path.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
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" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" elements="19" coveredelements="11"/>
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"/>
55
<package name="global">
66
<file name="BankAccount.php" path="%s%eBankAccount.php">
77
<metrics loc="35" ncloc="35" classes="1" methods="4" coveredmethods="3" conditionals="7" coveredconditionals="3" statements="8" coveredstatements="5" elements="19" coveredelements="11"/>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
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" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="9" coveredelements="9"/>
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"/>
55
<package name="global">
66
<file name="source_with_class_and_anonymous_function.php" path="%s%esource_with_class_and_anonymous_function.php">
77
<metrics loc="20" ncloc="19" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="9" coveredelements="9"/>

tests/_files/ignored-lines-clover.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
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" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="1" coveredelements="1"/>
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"/>
55
<package name="global">
66
<file name="source_with_ignore.php" path="%s%esource_with_ignore.php">
77
<metrics loc="43" ncloc="32" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="1" coveredelements="1"/>

0 commit comments

Comments
 (0)