/** * Log collected source files. * * @param JsonFile $jsonFile * @return void */ protected function logCollectedSourceFiles(JsonFile $jsonFile) { // @codeCoverageIgnoreStart $color = function ($coverage, $format) { // green 90% - 100% <info> // yellow 80% - 90% <comment> // red 0% - 80% <fg=red> if ($coverage >= 90) { return sprintf('<info>%s</info>', $format); } elseif ($coverage >= 80) { return sprintf('<comment>%s</comment>', $format); } else { return sprintf('<fg=red>%s</fg=red>', $format); } }; // @codeCoverageIgnoreEnd $sourceFiles = $jsonFile->getSourceFiles(); $numFiles = count($sourceFiles); $this->logger->info(sprintf('Found <info>%s</info> source file%s:', number_format($numFiles), $numFiles > 1 ? 's' : '')); foreach ($sourceFiles as $sourceFile) { /* @var $sourceFile \Contrib\Bundle\CoverallsV1Bundle\Entity\SourceFile */ $coverage = $sourceFile->reportLineCoverage(); $template = ' - ' . $color($coverage, '%6.2f%%') . ' %s'; $this->logger->info(sprintf($template, $coverage, $sourceFile->getName())); } $coverage = $jsonFile->reportLineCoverage(); $template = 'Coverage: ' . $color($coverage, '%6.2f%% (%d/%d)'); $metrics = $jsonFile->getMetrics(); $this->logger->info(sprintf($template, $coverage, $metrics->getCoveredStatements(), $metrics->getStatements())); }
/** * @test * @depends collectSourceFiles */ public function collectSourceFileTest2(JsonFile $jsonFile) { $sourceFiles = $jsonFile->getSourceFiles(); $name2 = 'test2.php'; $path2 = $this->rootDir . DIRECTORY_SEPARATOR . $name2; $this->assertArrayHasKey($path2, $sourceFiles); $this->assertSourceFileTest2($sourceFiles[$path2]); }