Skip to content

Commit

Permalink
Merge pull request #21 from codebtech/fix/coverage-avg
Browse files Browse the repository at this point in the history
Use local vars instead of class props
  • Loading branch information
m0hanraj committed Jun 26, 2024
2 parents 58e73b3 + 74cd8db commit 9e2ac7a
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 16 deletions.
32 changes: 17 additions & 15 deletions src/BadgeComposer.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,6 @@ class BadgeComposer
* @var int[]
*/
private array $totalCoverage = [];
private int $totalConditionals = 0;
private int $coveredConditionals = 0;
private int $totalStatements = 0;
private int $coveredStatements = 0;
private int $totalMethods = 0;
private int $coveredMethods = 0;

/**
* @throws Exception
Expand Down Expand Up @@ -119,17 +113,25 @@ private function processFile(string $inputFile): void
}
$xml = new SimpleXMLElement($content);
$metrics = $xml->xpath('//metrics');

$totalConditionals = 0;
$totalStatements = 0;
$totalMethods = 0;
$coveredStatements = 0;
$coveredConditionals = 0;
$coveredMethods = 0;

foreach ($metrics as $metric) {
$this->totalConditionals += (int) $metric['conditionals'];
$this->coveredConditionals += (int) $metric['coveredconditionals'];
$this->totalStatements += (int) $metric['statements'];
$this->coveredStatements += (int) $metric['coveredstatements'];
$this->totalMethods += (int) $metric['methods'];
$this->coveredMethods += (int) $metric['coveredmethods'];
$totalConditionals = (int) $metric['conditionals'];
$coveredConditionals = (int) $metric['coveredconditionals'];
$totalStatements = (int) $metric['statements'];
$coveredStatements = (int) $metric['coveredstatements'];
$totalMethods = (int) $metric['methods'];
$coveredMethods = (int) $metric['coveredmethods'];
}

$totalElements = $this->totalConditionals + $this->totalStatements + $this->totalMethods;
$coveredElements = $this->coveredConditionals + $this->coveredStatements + $this->coveredMethods;
$totalElements = $totalConditionals + $totalStatements + $totalMethods;
$coveredElements = $coveredConditionals + $coveredStatements + $coveredMethods;
$coverageRatio = $totalElements ? $coveredElements / $totalElements : 0;
$this->totalCoverage[] = (int) round($coverageRatio * 100);

Expand All @@ -152,7 +154,7 @@ private function finalizeCoverage(): void
throw new Exception('Error reading badge template file');
}

$template = str_replace('{{ total }}', (string) $totalCoverage, $template);
$template = str_replace('{{ total }}', (string) round($totalCoverage), $template);

$template = str_replace('{{ coverage }}', $this->coverageName, $template);

Expand Down
2 changes: 1 addition & 1 deletion tests/BadgeComposerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public function testProcessMultipleCloverFilesAndCalculateTheCoverage(): void
$this->processFile($this->inputFile);
$this->processFile($this->inputFile2);

$this->assertEquals(69, $this->badgeComposer->getTotalCoverage());
$this->assertEquals(43, $this->badgeComposer->getTotalCoverage());
}

/**
Expand Down

0 comments on commit 9e2ac7a

Please sign in to comment.