Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. CodeCoverage.php

function CodeCoverage::generateReports

File

vendor/phpunit/phpunit/src/Runner/CodeCoverage.php, line 204

Class

CodeCoverage
@no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit

Namespace

PHPUnit\Runner

Code

public function generateReports(Printer $printer, Configuration $configuration) : void {
    if (!$this->isActive()) {
        return;
    }
    if ($configuration->hasCoveragePhp()) {
        $this->codeCoverageGenerationStart($printer, 'PHP');
        try {
            $writer = new PhpReport();
            $writer->process($this->codeCoverage(), $configuration->coveragePhp());
            $this->codeCoverageGenerationSucceeded($printer);
            unset($writer);
        } catch (CodeCoverageException $e) {
            $this->codeCoverageGenerationFailed($printer, $e);
        }
    }
    if ($configuration->hasCoverageClover()) {
        $this->codeCoverageGenerationStart($printer, 'Clover XML');
        try {
            $writer = new CloverReport();
            $writer->process($this->codeCoverage(), $configuration->coverageClover());
            $this->codeCoverageGenerationSucceeded($printer);
            unset($writer);
        } catch (CodeCoverageException $e) {
            $this->codeCoverageGenerationFailed($printer, $e);
        }
    }
    if ($configuration->hasCoverageCobertura()) {
        $this->codeCoverageGenerationStart($printer, 'Cobertura XML');
        try {
            $writer = new CoberturaReport();
            $writer->process($this->codeCoverage(), $configuration->coverageCobertura());
            $this->codeCoverageGenerationSucceeded($printer);
            unset($writer);
        } catch (CodeCoverageException $e) {
            $this->codeCoverageGenerationFailed($printer, $e);
        }
    }
    if ($configuration->hasCoverageCrap4j()) {
        $this->codeCoverageGenerationStart($printer, 'Crap4J XML');
        try {
            $writer = new Crap4jReport($configuration->coverageCrap4jThreshold());
            $writer->process($this->codeCoverage(), $configuration->coverageCrap4j());
            $this->codeCoverageGenerationSucceeded($printer);
            unset($writer);
        } catch (CodeCoverageException $e) {
            $this->codeCoverageGenerationFailed($printer, $e);
        }
    }
    if ($configuration->hasCoverageHtml()) {
        $this->codeCoverageGenerationStart($printer, 'HTML');
        try {
            $customCssFile = CustomCssFile::default();
            if ($configuration->hasCoverageHtmlCustomCssFile()) {
                $customCssFile = CustomCssFile::from($configuration->coverageHtmlCustomCssFile());
            }
            $writer = new HtmlReport(sprintf(' and <a href="https://phpunit.de/">PHPUnit %s</a>', Version::id()), Colors::from($configuration->coverageHtmlColorSuccessLow(), $configuration->coverageHtmlColorSuccessMedium(), $configuration->coverageHtmlColorSuccessHigh(), $configuration->coverageHtmlColorWarning(), $configuration->coverageHtmlColorDanger()), Thresholds::from($configuration->coverageHtmlLowUpperBound(), $configuration->coverageHtmlHighLowerBound()), $customCssFile);
            $writer->process($this->codeCoverage(), $configuration->coverageHtml());
            $this->codeCoverageGenerationSucceeded($printer);
            unset($writer);
        } catch (CodeCoverageException $e) {
            $this->codeCoverageGenerationFailed($printer, $e);
        }
    }
    if ($configuration->hasCoverageText()) {
        $processor = new TextReport(Thresholds::default(), $configuration->coverageTextShowUncoveredFiles(), $configuration->coverageTextShowOnlySummary());
        $textReport = $processor->process($this->codeCoverage(), $configuration->colors());
        if ($configuration->coverageText() === 'php://stdout') {
            if (!$configuration->noOutput() && !$configuration->debug()) {
                $printer->print($textReport);
            }
        }
        else {
            file_put_contents($configuration->coverageText(), $textReport);
        }
    }
    if ($configuration->hasCoverageXml()) {
        $this->codeCoverageGenerationStart($printer, 'PHPUnit XML');
        try {
            $writer = new XmlReport(Version::id());
            $writer->process($this->codeCoverage(), $configuration->coverageXml());
            $this->codeCoverageGenerationSucceeded($printer);
            unset($writer);
        } catch (CodeCoverageException $e) {
            $this->codeCoverageGenerationFailed($printer, $e);
        }
    }
}
RSS feed
Powered by Drupal