All notable changes of the PHPUnit 13.3 release series are documented in this file using the Keep a CHANGELOG principles.
13.3.0 - 2026-08-07
- #3794: Filesystem-based code coverage targeting
- #5758: Make export of objects customizable
- #6546: Both property hooks can now be configured on test doubles of virtual hooked properties, even when the doubled property only declares one of them
- #6586: Custom code coverage driver support
- #6591: Repeated test execution using
--repeatCLI option and#[Repeat]attribute - #6701: Allow
expectOutputString()andexpectOutputRegex()to be combined and repeated - #6710: Deprecation Filters
- #6722: Allow
#[CoversNothing]on methods - #6742: Retry failing tests up to N times using
--retryCLI option#[Retry]attribute - #6827: Customize which deprecation trigger types fail the test run
- #6830: Warn when
failOnAllIssues="true"is combined with an explicitly disabled fine-grainedfailOn*setting - #6832: Allow doubling properties that do not declare property hooks
- #6853: Optionally warn when PHP is not configured for development
- phpunit/php-code-coverage #1140: Class-oriented HTML report
- phpunit/php-code-coverage #1141: Improve visualization of branch coverage and path coverage in the HTML report
- phpunit/php-code-coverage #1153: Filter HTML code coverage report by test size
--record-test-run-historyand--do-not-record-test-run-historyCLI options as well as therecordTestRunHistoryattribute for the XML configuration file to control whether the status and duration of each test are recorded for use by--order-by defectsand--order-by duration-*--without-class-viewCLI option andclassViewattribute for the XML configuration file to disable the class-oriented view in the HTML code coverage report--without-file-viewCLI option andfileViewattribute for the XML configuration file to disable the file-oriented view in the HTML code coverage report
- phpunit/php-code-coverage #1231: Identify dead code using static analysis
- phpunit/php-code-coverage #1259: Degrade gracefully when a source file cannot be parsed
- The test runner no longer crashes when an attribute cannot be instantiated
- Improved TestDox HTML report
- The feature formerly named "test result cache" is now named "test run history"; when a cache directory is configured, the file it is stored in is now named
test-run-historyinstead oftest-results - The test runner warns now when ordering by defects or duration is configured but recording of the test run history is disabled
--cache-resultCLI option, use--record-test-run-historyinstead--do-not-cache-resultCLI option, use--do-not-record-test-run-historyinsteadcacheResultXML configuration attribute, userecordTestRunHistoryinsteadPHPUnit\TextUI\Configuration\Configuration::cacheResult(), usePHPUnit\TextUI\Configuration\Configuration::recordTestRunHistory()insteadPHPUnit\TextUI\Configuration\Configuration::testResultCacheFile(), usePHPUnit\TextUI\Configuration\Configuration::testRunHistoryFile()instead
- Doubling a class with a property that declares both a final and a non-final hook no longer triggers a fatal error