📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials PHPUnit Testing Code Coverage

Code Coverage

5 min read Quiz at the end
Generate HTML/Clover coverage reports and upload to Codecov in CI pipelines.

Code Coverage

// Generate coverage report
./vendor/bin/phpunit --coverage-html=coverage/

// XML coverage
./vendor/bin/phpunit --coverage-clover=coverage.xml

// Text summary
./vendor/bin/phpunit --coverage-text

// phpunit.xml
<coverage>
  <report>
    <html outputDirectory="coverage"/>
    <clover outputFile="coverage.xml"/>
    <text outputFile="php://stdout" showOnlySummary="true"/>
  </report>
  <include>
    <directory>src</directory>
  </include>
</coverage>

// Require Xdebug or pcov
# php.ini
xdebug.mode=coverage

// Attributes to ignore
#[CoversNothing]
class HelperTest extends TestCase { }

#[CoversClass(Calculator::class)]
class CalculatorTest extends TestCase { }
Topic Quiz · 2 questions

Test your understanding before moving on

1. How do you generate an HTML coverage report?
💡 --coverage-html=coverage/ generates a browsable HTML coverage report.
2. What tool must be installed for code coverage?
💡 Xdebug (with xdebug.mode=coverage) or pcov must be installed.