Behat Chrome activity https://gitlab.com/behat-chrome 2026-02-06T08:01:15Z tag:gitlab.com,2026-02-06:5074597636 Renovate deleted project branch renovate/phpunit-phpunit-12.x at Behat Chrome / chrome-mink-driver 2026-02-06T08:01:15Z project_3255077_bot_3dbf01838c64a2bc68f86ccb49554cea Renovate

Renovate (cba0501d) at 06 Feb 08:01

tag:gitlab.com,2026-02-06:5074597310 Renovate closed merge request !215: chore(deps): update dependency phpunit/phpunit to v12 - autoclosed at Behat Chrome / chrome-mink-driver 2026-02-06T08:01:08Z project_3255077_bot_3dbf01838c64a2bc68f86ccb49554cea Renovate

This MR contains the following updates:

Package Change Age Confidence
phpunit/phpunit (source) ^8.5.22 || ^9.5.11^8.5.22 || ^9.5.11 || ^12.0.0 age confidence

Release Notes

sebastianbergmann/phpunit (phpunit/phpunit)

v12.5.8: PHPUnit 12.5.8

Compare Source

Changed
  • To prevent Poisoned Pipeline Execution (PPE) attacks using prepared .coverage files in pull requests, a PHPT test will no longer be run if the temporary file for writing code coverage information already exists before the test runs

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.5.7: PHPUnit 12.5.7

Compare Source

Fixed
  • #​6362: Manually instantiated test doubles are broken since PHPUnit 11.2
  • #​6470: Infinite recursion in Count::getCountOf() for unusal implementations of Iterator or IteratorAggregate

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.5.6: PHPUnit 12.5.6

Compare Source

Changed

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.5.5: PHPUnit 12.5.5

Compare Source

Deprecated
  • #​6461: any() matcher (soft deprecation)
Fixed
  • #​6470: Mocking a class with a property hook setter accepting more types than the property results in a fatal error

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.5.4: PHPUnit 12.5.4

Compare Source

Changed
  • The #[AllowMockObjectsWithoutExpectations] attribute can now be used on the method level
Fixed
  • #​6446: Test runner crashes with Timer::start() has to be called before Timer::stop()

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.5.3: PHPUnit 12.5.3

Compare Source

Changed
  • The message emitted when a test method creates a mock object but does not configure any expectations for it has been improved

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.5.2: PHPUnit 12.5.2

Compare Source

Added
  • Attribute #[AllowMockObjectsWithoutExpectations] for excluding tests from the check that emits the notice for test methods that create a mock object but do not configure an expectation for it

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.5.1: PHPUnit 12.5.1

Compare Source

Added
  • TestCase::getStubBuilder() (analogous to TestCase::getMockBuilder()) for creating (partial) test stubs using a fluent API

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.5.0: PHPUnit 12.5.0

Compare Source

Added
  • #​6376: --all CLI option to ignore test selection configured in XML configuration file
  • #​6422: Make <source> element in XML code coverage report optional
Changed
  • #​6380: Allow Throwable in expectExceptionObject()
  • A PHPUnit notice is now emitted for test methods that create a mock object but do not configure an expectation for it

Learn how to install or update PHPUnit 12.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.4.5: PHPUnit 12.4.5

Compare Source

Changed
  • Updated list of deprecated PHP configuration settings for PHP 8.4, PHP 8.5, and PHP 8.6
Fixed
  • #​6426: Fix migration of configuration without schema location

Learn how to install or update PHPUnit 12.4 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.4.4: PHPUnit 12.4.4

Compare Source

Fixed
  • #​6408: Exception in a data provider method leads to internal PHPUnit error
  • #​6410: Test runner's shutdown handler is called in system-under-test's child process

Learn how to install or update PHPUnit 12.4 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.4.3: PHPUnit 12.4.3

Compare Source

Fixed
  • #​6402: Avoid reading from STDOUT when rewind() fails

Learn how to install or update PHPUnit 12.4 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.4.2: PHPUnit 12.4.2

Compare Source

Changed
  • Skipped tests alone no longer lead to a yellow background for the test result summary
Fixed
  • #​6391: Errors during backup of global variables and static properties are not reported

Learn how to install or update PHPUnit 12.4 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.4.1: PHPUnit 12.4.1

Compare Source

Fixed
  • #​6364: --filter format used by PhpStorm stopped working
  • #​6378: Wrong method name passed to DataProviderMethodCalled event value object

Learn how to install or update PHPUnit 12.4 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.4.0: PHPUnit 12.4.0

Compare Source

Added
  • #​6277: Allow tests to opt out of the validation that a data provider method does not provide data sets with more values than a test method accepts
  • #​6341: Support for regular expressions with #[IgnoreDeprecations] attribute
  • #​6354: Invokable constraints
Deprecated
  • #​6284: #[RunClassInSeparateProcess] attribute
  • #​6355: Support for version constraint string argument without explicit version comparison operator

Learn how to install or update PHPUnit 12.4 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.15: PHPUnit 12.3.15

Compare Source

Fixed
  • #​6368: failOnPhpunitWarning="false" has no effect

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.14: PHPUnit 12.3.14

Compare Source

  • No changes; phpunit.phar rebuilt with updated dependencies

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.13: PHPUnit 12.3.13

Compare Source

  • No changes; phpunit.phar rebuilt with updated dependencies

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.12: PHPUnit 12.3.12

Compare Source

  • No changes; phpunit.phar rebuilt with updated dependencies

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.11: PHPUnit 12.3.11

Compare Source

Changed
  • #​6366: Exclude __sleep() and __wakeup() from test double code generation on PHP >= 8.5

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.10: PHPUnit 12.3.10

Compare Source

Changed
  • #​6353: Disable performance optimization for tests requiring Xdebug
  • #​6357: Also collect E_DEPRECATED issues when building the test suite

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.9: PHPUnit 12.3.9

Compare Source

Changed
  • Do not use __sleep() method (which will be deprecated in PHP 8.5)

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.8: PHPUnit 12.3.8

Compare Source

Fixed
  • #​6340: Implicitly enabled display of deprecation details is not disabled when it should be

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.7: PHPUnit 12.3.7

Compare Source

Changed
  • #[IgnorePhpunitDeprecations] is now considered for test runner deprecations (where applicable)

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.6

Compare Source

v12.3.5: PHPUnit 12.3.5

Compare Source

Changed
  • #​6319: Detect premature end of PHPUnit's main PHP process
  • #​6321: Allow error_reporting=E_ALL for --check-php-configuration
Fixed
  • #​5863: TestDox printer does not show previous exception
  • #​6102: expectUserDeprecationMessage*() fails when test is run in separate process

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.4: PHPUnit 12.3.4

Compare Source

Changed
  • #​6308: Improve output of --check-php-configuration
  • The version number for the test result cache file has been incremented to reflect that its structure for PHPUnit 12.3 is not compatible with its structure for PHPUnit 8.5 and PHPUnit 9.6
Fixed
  • #​6197: ini_set('error_log') sets filepath outside open_basedir
  • #​6279: Deprecation triggered in data provider method affects all test methods using that data provider method
  • #​6281: Exceptions raised in after-test method are not reported for skipped tests

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.3: PHPUnit 12.3.3

Compare Source

Fixed
  • #​6304: PHPUnit 11.5.29 hangs when a test runner deprecation is triggered and process isolation is used (this reverts "#[IgnorePhpunitDeprecations] is now considered for test runner deprecations" from PHPUnit 12.3.1)

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.2: PHPUnit 12.3.2

Compare Source

Changed
  • #​6300: Emit warning when the name of a data provider method begins with test
  • Do not use SplObjectStorage methods that will be deprecated in PHP 8.5

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.1: PHPUnit 12.3.1

Compare Source

Added
  • #​6297: --check-php-configuration CLI option for checking whether PHP is configured for testing
Changed
  • #[IgnorePhpunitDeprecations] is now considered for test runner deprecations (where applicable)
Fixed
  • #​6160: Baseline file in a subdirectory contains absolute paths
  • #​6294: Silent failure of PHP fatal errors
  • Errors due to invalid data provided using #[TestWith] or #[TestWithJson] attributes are now properly reported
  • The DataProviderMethodFinished event is now also emitted when the provided data set has an invalid key

Learn how to install or update PHPUnit 12.3 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v12.3.0: PHPUnit 12.3.0

Compare Source

Added
  • #​3795: Bootstrap scripts specific to test suites
  • #​6268: #[IgnorePHPUnitWarnings] attribute for ignoring PHPUnit warnings
  • #[TestDoxFormatter] and #[TestDoxFormatterExternal] attributes for configuring a custom TestDox formatter for tests that use data from data providers
  • TestRunner\ChildProcessErrored event
  • Configuration::includeTestSuites() and Configuration::excludeTestSuites()
Changed
  • #​6237: Do not run tests when code coverage analysis is requested but code coverage data cannot be collected
  • #​6272: Use @<data-set-name> format (compatible with --filter CLI option) in defect messages
  • #​6273: Warn when #[DataProvider*] attributes are mixed with #[TestWith*] attributes
Deprecated
  • #​6229: Configuration::includeTestSuite(), use Configuration::includeTestSuites() instead
  • #​6229: Configuration::excludeTestSuite(), use Configuration::excludeTestSuites() instead
  • #​6246: Using #[CoversNothing] on a test method

How to install or update PHPUnit

v12.2.9: PHPUnit 12.2.9

Compare Source

Fixed
  • #​6097: The file attribute of <testClass> node of XML test list can be wrong

How to install or update PHPUnit

v12.2.8: PHPUnit 12.2.8

Compare Source

Fixed
  • #​6274: Infinite recursion when code coverage report in OpenClover XML format is configured in XML configuration file

How to install or update PHPUnit

v12.2.7: PHPUnit 12.2.7

Compare Source

Fixed
  • #​6254: defects,randomconfiguration is supported by implementation, but it is not allowed by the XML configuration file schema
  • #​6259: Order of tests which use data from data providers is not affected by test sorting
  • #​6266: Superfluous whitespace in TestDox output when test method name has a number after the test prefix

How to install or update PHPUnit

v12.2.6: PHPUnit 12.2.6

Compare Source

Fixed
  • #​6104: Test with dependencies and data provider fails
  • #​6163: @no-named-arguments leads to static analysis errors for variadic arguments

How to install or update PHPUnit

v12.2.5: PHPUnit 12.2.5

Compare Source

Fixed
  • #​6249: No meaningful error when <testsuite> element is missing required name attribute

How to install or update PHPUnit

v12.2.4: PHPUnit 12.2.4

Compare Source

Changed
  • Including information about the Git repository (such as the commit hash and branch name) in the Open Test Reporting XML format is now an opt-in feature that can be enabled via the --include-git-information CLI option or the includeGitInformation attribute in the XML configuration file

How to install or update PHPUnit

v12.2.3: PHPUnit 12.2.3

Compare Source

Added
  • #​6236: failOnPhpunitWarning attribute on the <phpunit> element of the XML configuration file and --fail-on-phpunit-warning CLI option for controlling whether PHPUnit should fail on PHPUnit warnings (default: true)
  • #​6239: --do-not-fail-on-deprecation, --do-not-fail-on-phpunit-warning, --do-not-fail-on-phpunit-deprecation, --do-not-fail-on-empty-test-suite, --do-not-fail-on-incomplete, --do-not-fail-on-notice, --do-not-fail-on-risky, --do-not-fail-on-skipped, and --do-not-fail-on-warning CLI options
  • --do-not-report-useless-tests CLI option as a replacement for --dont-report-useless-tests
Deprecated
  • --dont-report-useless-tests CLI option (use --do-not-report-useless-tests instead)
Fixed
  • #​6243: Constraints cannot be implemented without using internal class ExpectationFailedException

How to install or update PHPUnit

v12.2.2: PHPUnit 12.2.2

Compare Source

Fixed
  • #​6222: Data Provider seems to mess up Test Dependencies
  • shortenArraysForExportThreshold XML configuration setting has no effect on all arrays exported for event-related value objects

How to install or update PHPUnit

v12.2.1: PHPUnit 12.2.1

Compare Source

Fixed
  • #​6228: Variadic test methods should not warn about too many arguments from data provider

How to install or update PHPUnit

v12.2.0: PHPUnit 12.2.0

Compare Source

Added
Experimental Support for Open Test Reporting XML

PHPUnit has supported reporting test results in the JUnit XML format for a long time. Unfortunately, there has never been a standard schema for the JUnit XML format. Common consumers of Clover XML log files interpret these files differently, which has led to frequent problems.

To address this, the JUnit team started the Open Test Reporting project, creating and maintaining language-agnostic XML and HTML test reporting formats. Unlike JUnit XML, Open Test Reporting's XML formats are extensible.

Logging in the Open Test Reporting XML format is controlled by the new --log-otr CLI option and the new <otr> XML configuration element.

This feature is experimental and the generated XML may change in order to enhance compliance with the Open Test Reporting project's XML schema definitions. The same applies to the XML schema definitions for information that is specific for PHP and PHPUnit. Please note that such changes may occur in bugfix or minor releases and could potentially break backwards compatibility.

Experimental Support for OpenClover XML

PHPUnit has supported reporting code coverage information in the Clover XML format for a long time. Unfortunately, there has never been a standard schema for the Clover XML format. Common consumers of Clover XML log files interpret these files differently, which leads to frequent problems.

The original commercial Clover project has been superseded by the Open Source OpenClover project, which provides an XML schema for its OpenClover XML format. Rather than modifying the existing Clover XML reporter to comply with the OpenClover XML schema, thereby breaking backward compatibility, a new OpenClover XML reporter has been introduced.

This new reporter is controlled by the new CLI option, --coverage-openclover, and the new XML configuration element, <openclover>. This code coverage reporter generates XML documents that validate against the OpenClover project's XML schema definition, with one exception: the <testproject> element is not generated.

The existing Clover XML reporter, controlled by the --coverage-clover CLI option and the <clover> XML configuration element, remains unchanged.

This feature is experimental and the generated XML may change to enhance compliance with the OpenClover XML schema definition. Please note that such changes may occur in bugfix or minor releases and could potentially break backwards compatibility.

Miscellaneous
  • --with-telemetry CLI option that can be used together with --debug to print debugging information that includes telemetry information
  • The TestCase::provideAdditionalInformation() method can now be used to emit a Test\AdditionalInformationProvided event
  • The new Test\AfterLastTestMethodFailed, Test\AfterTestMethodFailed, Test\BeforeFirstTestMethodFailed, Test\BeforeTestMethodFailed, Test\PostConditionFailed, Test\PreConditionFailed events are now emitted instead of Test\AfterLastTestMethodErrored, Test\AfterTestMethodErrored, Test\BeforeFirstTestMethodErrored, Test\BeforeTestMethodErrored, Test\PostConditionErrored, Test\PreConditionErrored when the Throwable extends AssertionFailedError to distinguish between errors and failures triggered in hook methods
  • The new Test\PreparationErrored event is now emitted instead of Test\PreparationFailed when the Throwable does not extend AssertionFailedError to distinguish between errors and failures triggered during test preparation
  • Test\PreparationFailed::throwable()
Changed
  • #​6165: Collect deprecations triggered by autoloading while loading/building the test suite
  • Do not treat warnings differently than other issues in summary section of default output
  • A warning is now emitted when both #[CoversNothing] and #[Covers*] (or #[Uses*]) are used on a test class
  • A warning is now emitted when the same #[Covers*] (or #[Uses*]) attribute is used multiple times on a test class
  • A warning is now emitted when the same code is targeted by both #[Covers*] and #[Uses*] attributes
  • A warning is now emitted when a hook method such as setUp(), for example has a #[Test] attribute
  • A warning is now emitted when more than one of #[Small], #[Medium], or #[Large] is used on a test class
  • A warning is now emitted when a data provider provides data sets that have more values than the test method consumes using arguments

How to install or update PHPUnit

v12.1.6: PHPUnit 12.1.6

Compare Source

Changed
  • #​6210: Set default Clover coverage project name
  • #​6217: Improve the error message when createStubForIntersectionOfInterfaces() is called with a class

How to install or update PHPUnit

v12.1.5: PHPUnit 12.1.5

Compare Source

Fixed
  • #​6192: Reverted change made in PHPUnit 11.5.19 due to regression
  • #​6199: assertEmpty() and assertNotEmpty() use overly restrictive phpstan-assert empty directives

How to install or update PHPUnit

v12.1.4: PHPUnit 12.1.4

Compare Source

Added
  • displayDetailsOnAllIssues attribute on the <phpunit> element of the XML configuration file and --display-all-issues CLI option for controlling whether PHPUnit should display details on all issues that are triggered (default: false)
  • failOnAllIssues attribute on the <phpunit> element of the XML configuration file and --fail-on-all-issues CLI option for controlling whether PHPUnit should fail on all issues that are triggered (default: false)
Changed
  • #​5956: Improved handling of deprecated E_STRICT constant
Fixed
  • #​6192: Positive %a and %A matches are not ignored from diff when EXPECTF fails

How to install or update PHPUnit

v12.1.3: PHPUnit 12.1.3

Compare Source

Changed
  • When gathering the telemetry information that each event has, the real size of memory allocated from the operating system is no longer used as this is grown by PHP's memory manager in chunks that are so large that small(er) increases in peak memory usage cannot be seen
  • The peak memory usage returned by memory_get_peak_usage() is now reset immediately before the Test\Prepared event is emitted using memory_reset_peak_usage() so that (memory usage at Test\Finished - memory usage at Test\Prepared) is a better approximation of the memory usage of the test
  • The string representation of Telemetry\Info now uses peak memory usage instead of memory usage (this affects --log-events-verbose-text)
Fixed
  • #​6173: Output from error_log() is not displayed when test fails
  • A "Before Test Method Errored" event is no longer emitted when a test is skipped in a "before test" method

How to install or update PHPUnit

v12.1.2: PHPUnit 12.1.2

Compare Source

Fixed
  • #​6104: Reverted change introduced in PHPUnit 12.1.1

How to install or update PHPUnit

v12.1.1: PHPUnit 12.1.1

Compare Source

Fixed
  • #​6104: Test with dependencies and data provider fails
  • #​6174: willReturnMap() fails with nullable parameters when their default is null and no argument is passed for them

How to install or update PHPUnit

v12.1.0: PHPUnit 12.1.0

Compare Source

Added
  • #​6118: expectErrorLog() for expecting error_log() output
  • #​6126: Attribute #[WithEnvironmentVariable] for setting an environment variable for the duration of a test
  • The AfterTestMethodCalled, AfterTestMethodErrored, AfterTestMethodFinished, BeforeTestMethodCalled, BeforeTestMethodErrored, BeforeTestMethodFinished, PostConditionCalled, PostConditionErrored, PostConditionFinished, PreConditionCalled, PreConditionErrored, and PreConditionFinished event value objects now have test() method that returns a value object representing the test method for which the hook method was called
Changed
  • When code coverage processing is requested and no static analysis cache directory has been configured then a cache directory in the operating system's path used for temporary files is automatically created and used
  • The static analysis of first-party source files required for the code coverage functionality is now performed before the first test is run, if code coverage processing is requested (via the XML configuration file and/or CLI options), all first-party source files are configured to be processed (which is the default), and a static analysis cache directory is available (either explicitly configured or automatically determined, see above). This has the same effect as running phpunit --warm-coverage-cache before running tests.
Deprecated
  • #​6140: The testClassName() method on the AfterTestMethodCalled, AfterTestMethodErrored, AfterTestMethodFinished, BeforeTestMethodCalled, BeforeTestMethodErrored, BeforeTestMethodFinished, PostConditionCalled, PostConditionErrored, PostConditionFinished, PreConditionCalled, PreConditionErrored, and PreConditionFinished event value objects (use test()->className() instead)

How to install or update PHPUnit

v12.0.10: PHPUnit 12.0.10

Compare Source

Changed
  • #​6150: Reverted change introduced in PHPUnit 12.0.8

How to install or update PHPUnit

v12.0.9: PHPUnit 12.0.9

Compare Source

Fixed
  • #​6154: Method with() on test doubles yields error with static analyzer

How to install or update PHPUnit

v12.0.8: PHPUnit 12.0.8

Compare Source

Changed
  • #​6150: Trigger warning when code coverage analysis is performed and no cache directory is configured

How to install or update PHPUnit

v12.0.7: PHPUnit 12.0.7

Compare Source

Fixed
  • #​5976: TestDox result printer does not display details about errors triggered in before-first-test and after-last-test methods

How to install or update PHPUnit

v12.0.6: PHPUnit 12.0.6

Compare Source

Fixed
  • #​6142: $expected and $actual are mixed up in failure description when assertJsonFileEqualsJsonFile() fails

How to install or update PHPUnit

v12.0.5: PHPUnit 12.0.5

Compare Source

Fixed
  • #​6138: Test with failed expectation on value passed to mocked method is incorrectly considered risky

How to install or update PHPUnit

v12.0.4: PHPUnit 12.0.4

Compare Source

Fixed
  • #​6134: Missing event when child process ends unexpectedly

How to install or update PHPUnit

v12.0.3: PHPUnit 12.0.3

Compare Source

Changed
  • TestCase::__construct() is now declared final (it was annotated with @final before and the announced changed from @final to final for PHPUnit 12 was forgotten)
Fixed
  • #​5951: Restore the includeUncoveredFiles configuration option
  • #​6133: Precision loss in aggregated test suite execution time(s) reported by JUnit XML logger
  • A Test\PreparationFailed event is now emitted in addition to a Test\Errored event when an unexpected exception is triggered in a before-test method
  • A Test\Passed event is no longer emitted in addition to a Test\Failed or Test\Errored event when an assertion failure or an unexpected exception is triggered in an after-test method
  • A TestSuite\Finished event is now emitted when a before-first-test method errors

How to install or update PHPUnit

v12.0.2: PHPUnit 12.0.2

Compare Source

Changed
  • Updated dependencies for PHAR distribution

How to install or update PHPUnit

v12.0.1: PHPUnit 12.0.1

Compare Source

Fixed
  • Deprecation message for Assert::isType(), assertContainsOnly(), assertNotContainsOnly(), and containsOnly()

How to install or update PHPUnit

v12.0.0: PHPUnit 12.0.0

Compare Source

Added
  • #​5984: #[CoversClassesThatExtendClass] and #[UsesClassesThatExtendClass]
  • #​5985: #[CoversClassesThatImplementInterface] and #[UsesClassesThatImplementInterface]
  • #​6073: #[CoversNamespace] and #[UsesNamespace]
  • #​6074: #[RequiresEnvironmentVariable]
Changed
  • #​5872: The default value for shortenArraysForExportThreshold is now 10 (limit export of arrays to 10 levels) instead of 0 (do not limit export of arrays)
Deprecated
  • #​6053: Assert::isType() (was soft-deprecated in PHPUnit 11.5)
  • #​6056: assertContainsOnly() (was soft-deprecated in PHPUnit 11.5)
  • #​6056: assertNotContainsOnly() (was soft-deprecated in PHPUnit 11.5)
  • #​6060: containsOnly() (was soft-deprecated in PHPUnit 11.5)
Removed
  • #​5215: TestCase::iniSet()
  • #​5217: TestCase::setLocale()
  • #​5246: TestCase::createTestProxy()
  • #​5247: TestCase::getMockForAbstractClass()
  • #​5248: TestCase::getMockFromWsdl()
  • #​5249: TestCase::getMockForTrait()
  • #​5250: TestCase::getObjectForTrait()
  • #​5310: MockBuilder::enableAutoload() and MockBuilder::disableAutoload()
  • #​5311: MockBuilder::allowMockingUnknownTypes() and MockBuilder::disallowMockingUnknownTypes()
  • #​5312: MockBuilder::enableProxyingToOriginalMethods(), MockBuilder::disableProxyingToOriginalMethods(), and MockBuilder::setProxyTarget()
  • #​5313: MockBuilder::getMockForTrait()
  • #​5314: MockBuilder::getMockForAbstractClass()
  • #​5316: MockBuilder::enableArgumentCloning() and MockBuilder::disableArgumentCloning()
  • #​5321: MockBuilder::addMethods()
  • #​5416: Support for doubling interfaces (or classes) that have a method named method
  • #​5424: TestCase methods for creating return stub configuration objects
  • #​5473: assertStringNotMatchesFormat() and assertStringNotMatchesFormatFile()
  • #​5536: Support for configuring expectations using expects() on test stubs
  • #​5541: Support for metadata in doc-comments
  • #​5710: Support for using comma-separated values with the --group, --exclude-group, --covers, --uses, and --test-suffix CLI options
  • #​5756: Support for the restrictDeprecations attribute on the <source> element of the XML configuration file
  • #​5801: Support for targeting traits with #[CoversClass] and #[UsesClass] attributes
  • #​5978: Support for PHP 8.2

How to install or update PHPUnit

v11.5.51: PHPUnit 11.5.51

Compare Source

Added
  • #​6488: Allow disabling issue trigger identification for improved performance
Fixed
  • #​6486: Incorrect file name reported for errors for test methods declared in traits
  • #​6490: Incorrect test count when tests are skipped in before-class method

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.50: PHPUnit 11.5.50

Compare Source

Changed
  • To prevent Poisoned Pipeline Execution (PPE) attacks using prepared .coverage files in pull requests, a PHPT test will no longer be run if the temporary file for writing code coverage information already exists before the test runs

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.49: PHPUnit 11.5.49

Compare Source

Fixed
  • #​6362: Manually instantiated test doubles are broken since PHPUnit 11.2
  • #​6470: Infinite recursion in Count::getCountOf() for unusal implementations of Iterator or IteratorAggregate

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.48: PHPUnit 11.5.48

Compare Source

Changed

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.47: PHPUnit 11.5.47

Compare Source

Fixed
  • #​6470: Mocking a class with a property hook setter accepting more types than the property results in a fatal error

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.46: PHPUnit 11.5.46

Compare Source

  • No changes; phpunit.phar rebuilt with PHP 8.4 to work around PHP-Scoper issue #​1139

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.45: PHPUnit 11.5.45

Compare Source

Changed
  • Updated list of deprecated PHP configuration settings for PHP 8.6
Fixed
  • #​6408: Exception in a data provider method leads to internal PHPUnit error
  • #​6426: Fix migration of configuration without schema location

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.44: PHPUnit 11.5.44

Compare Source

Fixed
  • #​6402: Avoid reading from STDOUT when rewind() fails

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.43: PHPUnit 11.5.43

Compare Source

Changed
  • Skipped tests alone no longer lead to a yellow background for the test result summary
Fixed
  • #​6391: Errors during backup of global variables and static properties are not reported

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.42: PHPUnit 11.5.42

Compare Source

Fixed
  • #​6368: failOnPhpunitWarning="false" has no effect

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.41: PHPUnit 11.5.41

Compare Source

  • No changes; phpunit.phar rebuilt with updated dependencies

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.40: PHPUnit 11.5.40

Compare Source

  • No changes; phpunit.phar rebuilt with updated dependencies

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.39: PHPUnit 11.5.39

Compare Source

Changed
  • #​6366: Exclude __sleep() and __wakeup() from test double code generation on PHP >= 8.5

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.38: PHPUnit 11.5.38

Compare Source

Changed
  • #​6353: Disable performance optimization for tests requiring Xdebug

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.37: PHPUnit 11.5.37

Compare Source

Changed
  • Do not use __sleep() method (which will be deprecated in PHP 8.5)

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.36: PHPUnit 11.5.36

Compare Source

Fixed
  • #​6340: Implicitly enabled display of deprecation details is not disabled when it should be

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.35: PHPUnit 11.5.35

Compare Source

Changed
  • #[IgnorePhpunitDeprecations] is now considered for test runner deprecations (where applicable)

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.34

Compare Source

v11.5.33: PHPUnit 11.5.33

Compare Source

Changed
  • #​6321: Allow error_reporting=E_ALL for --check-php-configuration
Fixed
  • #​5863: TestDox printer does not show previous exception
  • #​6102: expectUserDeprecationMessage*() fails when test is run in separate process

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.32: PHPUnit 11.5.32

Compare Source

Changed
  • #​6308: Improve output of --check-php-configuration
  • The version number for the test result cache file has been incremented to reflect that its structure for PHPUnit 11.5 is not compatible with its structure for PHPUnit 8.5 and PHPUnit 9.6
Fixed
  • #​6281: Exceptions raised in after-test method are not reported for skipped tests

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.31: PHPUnit 11.5.31

Compare Source

Fixed
  • #​6304: PHPUnit 11.5.29 hangs when a test runner deprecation is triggered and process isolation is used (this reverts "#[IgnorePhpunitDeprecations] is now considered for test runner deprecations" from PHPUnit 11.5.29)

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.30: PHPUnit 11.5.30

Compare Source

Changed
  • #​6300: Emit warning when the name of a data provider method begins with test
  • Do not use SplObjectStorage methods that will be deprecated in PHP 8.5

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.29: PHPUnit 11.5.29

Compare Source

Added
  • #​6297: --check-php-configuration CLI option for checking whether PHP is configured for testing
Changed
  • #[IgnorePhpunitDeprecations] is now considered for test runner deprecations (where applicable)
Fixed
  • #​6160: Baseline file in a subdirectory contains absolute paths
  • Errors due to invalid data provided using #[TestWith] or #[TestWithJson] attributes are now properly reported
  • The DataProviderMethodFinished event is now also emitted when the provided data set has an invalid key

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v11.5.28: PHPUnit 11.5.28

Compare Source

Fixed
  • #​6097: The file attribute of <testClass> node of XML test list can be wrong

How to install or update PHPUnit

v11.5.27: PHPUnit 11.5.27

Compare Source

Fixed
  • #​6254: defects,randomconfiguration is supported by implementation, but it is not allowed by the XML configuration file schema
  • #​6259: Order of tests which use data from data providers is not affected by test sorting
  • #​6266: Superfluous whitespace in TestDox output when test method name has a number after the test prefix

How to install or update PHPUnit

v11.5.26: PHPUnit 11.5.26

Compare Source

Fixed
  • #​6104: Test with dependencies and data provider fails
  • #​6163: @no-named-arguments leads to static analysis errors for variadic arguments

How to install or update PHPUnit

v11.5.25: PHPUnit 11.5.25

Compare Source

Fixed
  • #​6249: No meaningful error when <testsuite> element is missing required name attribute

How to install or update PHPUnit

v11.5.24: PHPUnit 11.5.24

Compare Source

Added
  • #​6236: failOnPhpunitWarning attribute on the <phpunit> element of the XML configuration file and --fail-on-phpunit-warning CLI option for controlling whether PHPUnit should fail on PHPUnit warnings (default: true)
  • #​6239: --do-not-fail-on-deprecation, --do-not-fail-on-phpunit-warning, --do-not-fail-on-phpunit-deprecation, --do-not-fail-on-empty-test-suite, --do-not-fail-on-incomplete, --do-not-fail-on-notice, --do-not-fail-on-risky, --do-not-fail-on-skipped, and --do-not-fail-on-warning CLI options
  • --do-not-report-useless-tests CLI option as a replacement for --dont-report-useless-tests
Deprecated
  • --dont-report-useless-tests CLI option (use --do-not-report-useless-tests instead)
Fixed
  • #​6243: Constraints cannot be implemented without using internal class ExpectationFailedException

How to install or update PHPUnit

v11.5.23: PHPUnit 11.5.23

Compare Source

Fixed
  • #​6222: Data Provider seems to mess up Test Dependencies
  • shortenArraysForExportThreshold XML configuration setting has no effect on all arrays exported for event-related value objects

How to install or update PHPUnit

v11.5.22: PHPUnit 11.5.22

Compare Source

Changed
  • Do not treat warnings differently than other issues in summary section of default output

How to install or update PHPUnit

v11.5.21: PHPUnit 11.5.21

Compare Source

Changed
  • #​6210: Set default Clover coverage project name
  • #​6217: Improve the error message when createStubForIntersectionOfInterfaces() is called with a class

How to install or update PHPUnit

v11.5.20: PHPUnit 11.5.20

Compare Source

Fixed
  • #​6199: assertEmpty() and assertNotEmpty() use overly restrictive phpstan-assert empty directives
  • #​6192: Reverted change made in PHPUnit 11.5.19 due to regression

How to install or update PHPUnit

v11.5.19: PHPUnit 11.5.19

Compare Source

Added
  • displayDetailsOnAllIssues attribute on the <phpunit> element of the XML configuration file and --display-all-issues CLI option for controlling whether PHPUnit should display details on all issues that are triggered (default: false)
  • failOnAllIssues attribute on the <phpunit> element of the XML configuration file and --fail-on-all-issues CLI option for controlling whether PHPUnit should fail on all issues that are triggered (default: false)
Changed
  • #​5956: Improved handling of deprecated E_STRICT constant
Fixed
  • #​6192: Positive %a and %A matches are not ignored from diff when EXPECTF fails

How to install or update PHPUnit

v11.5.18: PHPUnit 11.5.18

Compare Source

Changed
  • When gathering the telemetry information that each event has, the real size of memory allocated from the operating system is no longer used as this is grown by PHP's memory manager in chunks that are so large that small(er) increases in peak memory usage cannot be seen
  • The peak memory usage returned by memory_get_peak_usage() is now reset immediately before the Test\Prepared event is emitted using memory_reset_peak_usage() so that (memory usage at Test\Finished - memory usage at Test\Prepared) is a better approximation of the memory usage of the test
  • The string representation of Telemetry\Info now uses peak memory usage instead of memory usage (this affects --log-events-verbose-text)
Fixed
  • A "Before Test Method Errored" event is no longer emitted when a test is skipped in a "before test" method

How to install or update PHPUnit

v11.5.17: PHPUnit 11.5.17

Compare Source

Fixed
  • #​6104: Reverted change introduced in PHPUnit 11.5.16

How to install or update PHPUnit

v11.5.16: PHPUnit 11.5.16

Compare Source

Fixed
  • #​6104: Test with dependencies and data provider fails
  • #​6174: willReturnMap() fails with nullable parameters when their default is null and no argument is passed for them

How to install or update PHPUnit

v11.5.15: PHPUnit 11.5.15

Compare Source

Changed
  • #​6150: Reverted change introduced in PHPUnit 11.5.13

How to install or update PHPUnit

v11.5.14: PHPUnit 11.5.14

Compare Source

Changed
  • Updated dependencies for PHAR distribution

How to install or update PHPUnit

v11.5.13: PHPUnit 11.5.13

Compare Source

Changed
  • #​6150: Trigger warning when code coverage analysis is performed and no cache directory is configured

How to install or update PHPUnit

v11.5.12: PHPUnit 11.5.12

Compare Source

Fixed
  • #​5976: TestDox result printer does not display details about errors triggered in before-first-test and after-last-test methods

How to install or update PHPUnit

v11.5.11: PHPUnit 11.5.11

Compare Source

Fixed
  • #​6142: $expected and $actual are mixed up in failure description when assertJsonFileEqualsJsonFile() fails

How to install or update PHPUnit

v11.5.10: PHPUnit 11.5.10

Compare Source

Fixed
  • #​6138: Test with failed expectation on value passed to mocked method is incorrectly considered risky

How to install or update PHPUnit

v11.5.9: PHPUnit 11.5.9

Compare Source

Fixed
  • #​6134: Missing event when child process ends unexpectedly

How to install or update PHPUnit

v11.5.8: PHPUnit 11.5.8

Compare Source

Fixed
  • A Test\PreparationFailed event is now emitted in addition to a Test\Errored event when an unexpected exception is triggered in a before-test method
  • A Test\Passed event is no longer emitted in addition to a Test\Failed or Test\Errored event when an assertion failure or an unexpected exception is triggered in an after-test method
  • A TestSuite\Finished event is now emitted when a before-first-test method errors

How to install or update PHPUnit

v11.5.7: PHPUnit 11.5.7

Compare Source

Changed
  • #​5951: The includeUncoveredFiles configuration option is no longer deprecated
  • #​6117: Include source location information for issues triggered during test in --debug output
  • #​6119: Improve message for errors that occur while parsing attributes
  • #​6120: Allow negative priorities for hook methods

How to install or update PHPUnit

v11.5.6: PHPUnit 11.5.6

Compare Source

Changed
  • #​6112: Improve performance of SourceMapper
Fixed
  • #​6115: Backed enumerations with values not of type string cannot be used in customized TestDox output

How to install or update PHPUnit

v11.5.5: PHPUnit 11.5.5

Compare Source

Changed
  • Do not skip execution of test that depends on a test that is larger than itself

How to install or update PHPUnit

v11.5.4: PHPUnit 11.5.4

Compare Source

Changed
  • #​5958: Support for #[CoversTrait] and #[UsesTrait] attributes is no longer deprecated
  • #​5960: Support for targeting trait methods with the #[CoversMethod] and #[UsesMethod] attributes is no longer deprecated
Fixed
  • #​6103: Output from test run in separate process is printed twice
  • #​6109: Skipping a test in a before-class method crashes JUnit XML logger
  • #​6111: Deprecations cause SourceMapper to scan all <source/> files

How to install or update PHPUnit

v11.5.3: PHPUnit 11.5.3

Compare Source

Added
  • Test\AfterLastTestMethodErrored, Test\AfterTestMethodErrored, Test\BeforeTestMethodErrored, Test\PostConditionErrored, and Test\PreConditionErrored events
Fixed
  • #​6093: Test Double Code Generator does not work when PHPUnit is used from PHAR on PHP 8.4
  • #​6094: Errors in after-last-test methods are not reported
  • #​6095: Expectation is not counted correctly when a doubled method is called more often than is expected
  • #​6096: --list-tests-xml is broken when a group with a numeric name is defined
  • #​6098: No system-out element in JUnit XML logfile
  • #​6100: Suppressed deprecations incorrectly stop test execution when execution should be stopped on deprecation

How to install or update PHPUnit

v11.5.2: PHPUnit 11.5.2

Compare Source

Fixed
  • #​6082: assertArrayHasKey(), assertArrayNotHasKey(), arrayHasKey(), and ArrayHasKey::__construct() do not support all possible key types
  • #​6087: --migrate-configuration does not remove beStrictAboutTodoAnnotatedTests attribute from XML configuration file

How to install or update PHPUnit

v11.5.1: PHPUnit 11.5.1

Compare Source

Added
  • #​6081: DefaultResultCache::mergeWith() for merging result cache instances
Fixed
  • #​6066: TeamCity logger does not handle error/skipped events in before-class methods correctly

How to install or update PHPUnit

v11.5.0: PHPUnit 11.5.0

Compare Source

Added
  • #​5948: Support for Property Hooks in Test Doubles
  • #​5954: Provide a way to stop execution at a particular deprecation
  • Method assertContainsNotOnlyInstancesOf() in the PHPUnit\Framework\Assert class as the inverse of the assertContainsOnlyInstancesOf() method
  • Methods assertContainsOnlyArray(), assertContainsOnlyBool(), assertContainsOnlyCallable(), assertContainsOnlyFloat(), assertContainsOnlyInt(), assertContainsOnlyIterable(), assertContainsOnlyNull(), assertContainsOnlyNumeric(), assertContainsOnlyObject(), assertContainsOnlyResource(), assertContainsOnlyClosedResource(), assertContainsOnlyScalar(), and assertContainsOnlyString() in the PHPUnit\Framework\Assert class as specialized alternatives for the generic assertContainsOnly() method
  • Methods assertContainsNotOnlyArray(), assertContainsNotOnlyBool(), assertContainsNotOnlyCallable(), assertContainsNotOnlyFloat(), assertContainsNotOnlyInt(), assertContainsNotOnlyIterable(), assertContainsNotOnlyNull(), assertContainsNotOnlyNumeric(), assertContainsNotOnlyObject(), assertContainsNotOnlyResource(), assertContainsNotOnlyClosedResource(), assertContainsNotOnlyScalar(), and assertContainsNotOnlyString() in the PHPUnit\Framework\Assert class as specialized alternatives for the generic assertNotContainsOnly() method
  • Methods containsOnlyArray(), containsOnlyBool(), containsOnlyCallable(), containsOnlyFloat(), containsOnlyInt(), containsOnlyIterable(), containsOnlyNull(), containsOnlyNumeric(), containsOnlyObject(), containsOnlyResource(), containsOnlyClosedResource(), containsOnlyScalar(), and containsOnlyString() in the PHPUnit\Framework\Assert class as specialized alternatives for the generic containsOnly() method
  • Methods isArray(), isBool(), isCallable(), isFloat(), isInt(), isIterable(), isNumeric(), isObject(), isResource(), isClosedResource(), isScalar(), isString() in the PHPUnit\Framework\Assert class as specialized alternatives for the generic isType() method
  • TestRunner\ChildProcessStarted and TestRunner\ChildProcessFinished events
Changed
  • #​5998: Do not run SKIPIF section of PHPT test in separate process when it is free of side effects
  • #​5999: Do not run CLEAN section of PHPT test in separate process when it is free of side effects that modify the parent process
Deprecated
  • #​6052: isType() (use isArray(), isBool(), isCallable(), isFloat(), isInt(), isIterable(), isNull(), isNumeric(), isObject(), isResource(), isClosedResource(), isScalar(), or isString() instead)
  • #​6055: assertContainsOnly() (use assertContainsOnlyArray(), assertContainsOnlyBool(), assertContainsOnlyCallable(), assertContainsOnlyFloat(), assertContainsOnlyInt(), assertContainsOnlyIterable(), assertContainsOnlyNumeric(), assertContainsOnlyObject(), assertContainsOnlyResource(), assertContainsOnlyClosedResource(), assertContainsOnlyScalar(), or assertContainsOnlyString() instead)
  • #​6055: assertNotContainsOnly() (use assertContainsNotOnlyArray(), assertContainsNotOnlyBool(), assertContainsNotOnlyCallable(), assertContainsNotOnlyFloat(), assertContainsNotOnlyInt(), assertContainsNotOnlyIterable(), assertContainsNotOnlyNumeric(), assertContainsNotOnlyObject(), assertContainsNotOnlyResource(), assertContainsNotOnlyClosedResource(), assertContainsNotOnlyScalar(), or assertContainsNotOnlyString() instead)
  • #​6059: containsOnly() (use containsOnlyArray(), containsOnlyBool(), containsOnlyCallable(), containsOnlyFloat(), containsOnlyInt(), containsOnlyIterable(), containsOnlyNumeric(), containsOnlyObject(), containsOnlyResource(), containsOnlyClosedResource(), containsOnlyScalar(), or containsOnlyString() instead)

How to install or update PHPUnit

v11.4.4: PHPUnit 11.4.4

Compare Source

Fixed
  • #​6028: ignoreIndirectDeprecations=true suppresses deprecations triggered in test code

How to install or update PHPUnit

v11.4.3: PHPUnit 11.4.3

Compare Source

Changed
  • #​6010: Improve parameter name for assertGreaterThan(), assertGreaterThanOrEqual(), assertLessThan(), and assertLessThanOrEqual()
  • #​6012: Remove empty lines between TeamCity events
Fixed
  • #​6017: Deprecation Triggers are not registered when Process Isolation is used

How to install or update PHPUnit

v11.4.2: PHPUnit 11.4.2

Compare Source

Changed
  • #​5989: Disable Xdebug in subprocesses when it is not used
Fixed
  • #​5844: Error handlers that are not callable outside the scope they were registered in are not handled correctly
  • #​5982: Typo in exception message

How to install or update PHPUnit

v11.4.1: PHPUnit 11.4.1

Compare Source

Changed
  • Updated regular expressions used by StringMatchesFormatDescription constraint to be consistent with PHP's run-tests.php
Fixed
  • #​5977: TestDox result collector does not correctly handle baseline-ignored E_DEPRECATED issues

How to install or update PHPUnit

v11.4.0: PHPUnit 11.4.0

Compare Source

Changed
  • #​5915: Bootstrap extensions before building test suite
  • #​5917: Seal event facade before loading the test suite
  • #​5923: Filter configured deprecation triggers when displaying deprecation details
  • #​5927: #[RequiresPhpunitExtension] attribute
  • #​5928: Filter tests based on the PHP extensions they require
  • #​5964: Better error message when data provider is invalid
  • The XML configuration file generator now references vendor/phpunit/phpunit/phpunit.xsd (instead of https://schema.phpunit.de/X.Y/phpunit.xsd) when PHPUnit was installed using Composer and phpunit --generate-configuration was invoked in the directory where vendor is located
  • The --migrate-configuration command no longer replaces vendor/phpunit/phpunit/phpunit.xsd with https://schema.phpunit.de/X.Y/phpunit.xsd
  • The output of --list-groups now shows how many tests a group contains
  • The output of --list-suites now shows how many tests a test suite contains
Deprecated
  • #​5951: includeUncoveredFiles configuration option
  • #​5958: Support for #[CoversTrait] and #[UsesTrait] attributes
  • #​5960: Support for targeting trait methods with the #[CoversMethod] and #[UsesMethod] attributes (and respective annotations)

How to install or update PHPUnit

v11.3.6: PHPUnit 11.3.6

Compare Source

Changed
  • #​5956: Deprecation of the E_STRICT constant in PHP 8.4
Fixed
  • #​5950: TestDox text should not be trim()med when it contains $ character
  • The attribute parser will no longer try to instantiate attribute classes that do not exist

How to install or update PHPUnit

v11.3.5: PHPUnit 11.3.5

Compare Source

Fixed
  • #​5874: Test Stub generated by return value generator for doubled method with static return type declaration is not properly initialized
  • #​5931: Reverted addition of name property on <testsuites> element in JUnit XML logfile
  • #​5946: Callback throws a TypeError when checking a callable has variadic parameters

How to install or update PHPUnit

v11.3.4: PHPUnit 11.3.4

Compare Source

Fixed
  • #​4584: assertJsonStringEqualsJsonString() considers objects with sequential numeric keys equal to be arrays
  • #​4625: Generator yielding keys that are neither integer or string leads to hard-to-understand error message when used as data provider
  • #​4674: JSON assertions should treat objects as unordered
  • #​5891: Callback constraint does not handle variadic arguments correctly when used for mock object expectations
  • #​5929: TestDox output containing $ at the beginning gets truncated when used with a data provider
  • #​5943: Tests configured to be in group(s) using the XML configuration file are also added to the default group

How to install or update PHPUnit

v11.3.3: PHPUnit 11.3.3

Compare Source

Added
  • #​5937: failOnPhpunitDeprecation attribute on the <phpunit> element of the XML configuration file and --fail-on-phpunit-deprecation CLI option for controlling whether PHPUnit deprecations should be considered when determining the test runner's shell exit code (default: do not consider)
  • displayDetailsOnPhpunitDeprecations attribute on the <phpunit> element of the XML configuration file and --display-phpunit-deprecations CLI option for controlling whether details on PHPUnit deprecations should be displayed (default: do not display)
Changed
  • #​5937: PHPUnit deprecations will, by default, no longer affect the test runner's shell exit code. This can optionally be turned back on using the --fail-on-phpunit-deprecation CLI option or the failOnPhpunitDeprecation="true" attribute on the <phpunit> element of the XML configuration file.
  • Details for PHPUnit deprecations will, by default, no longer be displayed. This can optionally be turned back on using the --display-phpunit-deprecations CLI option or the displayDetailsOnPhpunitDeprecations attribute on the <phpunit> element of the XML configuration file.

How to install or update PHPUnit

v11.3.2: PHPUnit 11.3.2

Compare Source

Changed
  • #​5931: name property on <testsuites> element in JUnit XML logfile
  • Removed .phpstorm.meta.php file as methods such as TestCase::createStub() use generics / template types for their return types and PhpStorm, for example, uses that information
Fixed
  • #​5884: TestDox printer does not consider that issues can be suppressed by attribute, baseline, source location, or @ operator

How to install or update PHPUnit

v11.3.1: PHPUnit 11.3.1

Compare Source

Changed
  • Improved how objects are handled for some assertion failure messages

How to install or update PHPUnit

v11.3.0: PHPUnit 11.3.0

Compare Source

Added
  • #​5869: shortenArraysForExportThreshold attribute on the <phpunit> element of the XML configuration file to limit the export of arrays to a specified number of elements (default: 0 / do not limit the export of arrays)
  • #​5885: Optionally repeat TestDox output for non-successful tests after the regular TestDox output
  • #​5890: Priority for hook methods
  • #​5906: --extension CLI option to register a test runner extension
Changed
  • #​5856: When the test runner is configured to fail on deprecations, notices, warnings, incomplete tests, or skipped tests then details for tests that triggered deprecations, notices, or warnings as well as tests that were marked as incomplete or skipped are always shown, respectively
  • #​5869: The configuration file generated using --generate-configuration now limits the export of arrays to 10 elements in order to improve performance

How to install or update PHPUnit

v11.2.9: PHPUnit 11.2.9

Compare Source

Fixed
  • #​5887: Issue baseline generator does not correctly handle ignoring suppressed issues
  • #​5908: --list-tests and --list-tests-xml CLI options do not report error when data provider method throws exception

How to install or update PHPUnit

v11.2.8: PHPUnit 11.2.8

Compare Source

Fixed
  • #​5898: Test\Passed event is not emitted for PHPT tests
  • --coverage-filter CLI option could not be used multiple times

How to install or update PHPUnit

v11.2.7: PHPUnit 11.2.7

Compare Source

Changed
  • Updated dependencies (so that users that install using Composer's --prefer-lowest CLI option also get recent versions)
Fixed
  • #​5892: Errors during write of phpunit.xml are not handled correctly when --generate-configuration is used

How to install or update PHPUnit

v11.2.6: PHPUnit 11.2.6

Compare Source

Changed
  • #​5880: Add hints to CLI parameter deprecation messages

How to install or update PHPUnit

v11.2.5: PHPUnit 11.2.5

Compare Source

Changed
  • #​5877: Use array_pop() instead of array_shift() for processing Test objects in TestSuite::run() and optimize TestSuite::isEmpty()

How to install or update PHPUnit

v11.2.4: PHPUnit 11.2.4

Compare Source

Changed
  • #​5875: Also destruct TestCase objects early that use a data provider

How to install or update PHPUnit

v11.2.3: PHPUnit 11.2.3

Compare Source

Changed
  • #​5870: Do not collect unnecessary information using debug_backtrace()

How to install or update PHPUnit

v11.2.2: PHPUnit 11.2.2

Compare Source

Changed
  • #​5861: Destroy TestCase object after its test was run
Fixed
  • #​5822: PHP deprecations triggered within a closure are not handled correctly

How to install or update PHPUnit

v11.2.1: PHPUnit 11.2.1

Compare Source

Fixed
  • #​5857: Mocked methods cannot be called from the original constructor of a partially mocked class
  • #​5859: XML Configuration File Migrator does not remove cacheDirectory attribute from <coverage> element when migrating from PHPUnit 11.1 to PHPUnit 11.2

How to install or update PHPUnit

v11.2.0: PHPUnit 11.2.0

Compare Source

Added
  • #​5799: #[CoversTrait] and #[UsesTrait] attributes
  • #​5804: Support doubling readonly classes
  • #​5811: assertObjectNotEquals()
Deprecated
  • #​5800: Support for targeting traits with #[CoversClass] and #[UsesClass] attributes

How to install or update PHPUnit

v11.1.3: PHPUnit 11.1.3

Compare Source

Fixed
  • #​5771: JUnit XML logger may crash when test that is run in separate process exits unexpectedly
  • #​5819: Duplicate keys from different data providers are not handled properly

How to install or update PHPUnit

v11.1.2: PHPUnit 11.1.2

Compare Source

Fixed
  • #​5795: Using @testWith annotation may generate PHP Warning: Uninitialized string offset 0
  • #​5807: The #[CoversMethod] attribute is not considered for risky test check

How to install or update PHPUnit

v11.1.1: PHPUnit 11.1.1

Compare Source

Fixed
  • #​5798: The #[CoversClass] and #[UsesClass] attributes can no longer target traits

How to install or update PHPUnit

v11.1.0: PHPUnit 11.1.0

Compare Source

Added
  • #​5689: Distinguish between self, direct and indirect deprecations
  • #​5696: #[DisableReturnValueGenerationForTestDoubles] attribute for disabling return value generation for test doubles created using createMock(), createMockForIntersectionOfInterfaces(), createPartialMock(), createStub(), and createStubForIntersectionOfInterfaces()
  • #​5175: #[CoversMethod] and #[UsesMethod] attributes for more fine-grained code coverage targeting
  • #​5720: Support filtering using --filter, --exclude-filter, --group, and --exclude-group when listing tests using --list-tests and --list-tests-xml as well as listing groups with --list-groups
  • #​5733: Implicitly include (abstract) parent class(es) with #[CoversClass] and #[UsesClass] attributes
  • --only-summary-for-coverage-text CLI option to reduce the code coverage report in text format to a summary
  • --show-uncovered-for-coverage-text CLI option to expand the code coverage report in text format to include a list of uncovered files
Changed
  • #​5689: The XML configuration file generated using --generate-configuration now generates <source ignoreIndirectDeprecations="true" restrictNotices="true" restrictWarnings="true"> instead of <source restrictDeprecations="true" restrictNotices="true" restrictWarnings="true">
  • #​5708: Allow the --group, --exclude-group, --covers, --uses, and --test-suffix CLI options to be used multiple times
  • PHPUnit\Framework\TestCase::__construct() is now annotated to be final in preparation for declaring it final in PHPUnit 12
  • Changed how the DeprecationTriggered, ErrorTriggered, NoticeTriggered, PhpDeprecationTriggered, PhpNoticeTriggered, PhpWarningTriggered, and WarningTriggered events are represented as text
Deprecated
  • #​5689: The restrictDeprecations attribute on the <source> element of the XML configuration file is now deprecated in favor of the ignoreSelfDeprecations, ignoreDirectDeprecations, and ignoreIndirectDeprecations attributes
  • #​5709: Deprecate support for using comma-separated values with the --group, --exclude-group, --covers, --uses, and --test-suffix CLI options

How to install or update PHPUnit

v11.0.10: PHPUnit 11.0.10

Compare Source

Changed
  • The namespaces of dependencies are now prefixed with PHPUnitPHAR instead of just PHPUnit for the PHAR distribution of PHPUnit

How to install or update PHPUnit

v11.0.9: PHPUnit 11.0.9

Compare Source

Changed
  • #​5766: Do not use a shell in proc_open() if not really needed
  • #​5772: Cleanup process handling after dropping temp-file handling
Fixed
  • #​5570: Windows does not support exclusive locks on stdout

How to install or update PHPUnit

v11.0.8: PHPUnit 11.0.8

Compare Source

Fixed
  • #​5765: Be more forgiving with error handlers that do not respect error suppression

How to install or update PHPUnit

v11.0.7: PHPUnit 11.0.7

Compare Source

Changed
  • #​5747: Cache result of Groups::groups()
  • #​5748: Improve performance of NamePrettifier::prettifyTestMethodName()
  • #​5750: Micro-optimize NamePrettifier::prettifyTestMethodName() once again
  • #​5752: Improve message for deprecation of doubling methods named "method"
Fixed
  • #​5760: TestDox printer does not display details about exceptions raised in before-test methods

How to install or update PHPUnit

v11.0.6: PHPUnit 11.0.6

Compare Source

Changed
  • #​5727: Prevent duplicate call of NamePrettifier::prettifyTestMethodName()
  • #​5739: Micro-optimize NamePrettifier::prettifyTestMethodName()
  • #​5740: Micro-optimize TestRunner::runTestWithTimeout()
  • #​5741: Save call to Telemetry\System::snapshot()
  • #​5742: Prevent file IO when not strictly necessary
  • #​5743: Prevent unnecessary ExecutionOrderDependency::getTarget() call
  • #​5744: Simplify NamePrettifier::prettifyTestMethodName()
Fixed
  • #​5351: Incorrect code coverage metadata does not prevent code coverage data from being collected
  • #​5729: assertArrayIsIdenticalToArrayOnlyConsideringListOfKeys() does not correctly handle array order
  • #​5746: Using -d CLI option multiple times triggers warning

How to install or update PHPUnit

v11.0.5: PHPUnit 11.0.5

Compare Source

Fixed
  • #​5652: HRTime::duration() throws InvalidArgumentException
  • --exclude-filter CLI option does not work

How to install or update PHPUnit

v11.0.4

Compare Source

v11.0.3

Compare Source

v11.0.2

Compare Source

v11.0.1

Compare Source

v11.0.0

Compare Source

v10.5.63: PHPUnit 10.5.63

Compare Source

Fixed
  • Regression introduced in PHPUnit 9.6.33

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.62: PHPUnit 10.5.62

Compare Source

Changed
  • To prevent Poisoned Pipeline Execution (PPE) attacks using prepared .coverage files in pull requests, a PHPT test will no longer be run if the temporary file for writing code coverage information already exists before the test runs

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.61: PHPUnit 10.5.61

Compare Source

Changed
  • PHPUnit\Framework\MockObject exceptions are now subtypes of PHPUnit\Exception

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.60: PHPUnit 10.5.60

Compare Source

  • No changes; phpunit.phar rebuilt with PHP 8.4 to work around PHP-Scoper issue #​1139

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.59: PHPUnit 10.5.59

Compare Source

Changed
  • #​6338: Removed code from PHPUnit\Runner\TestSuiteSorter that was only used in the tests for this class
  • Updated list of deprecated PHP configuration settings for PHP 8.4, PHP 8.5, and PHP 8.6

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.58: PHPUnit 10.5.58

Compare Source

Fixed
  • #​6368: failOnPhpunitWarning="false" has no effect

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.57: PHPUnit 10.5.57

Compare Source

  • No changes; phpunit.phar rebuilt with updated dependencies

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.56: PHPUnit 10.5.56

Compare Source

  • No changes; phpunit.phar rebuilt with updated dependencies

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.55: PHPUnit 10.5.55

Compare Source

Changed
  • #​6366: Exclude __sleep() and __wakeup() from test double code generation on PHP >= 8.5

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.54: PHPUnit 10.5.54

Compare Source

Changed
  • Do not use __sleep() method (which will be deprecated in PHP 8.5)

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.53

Compare Source

v10.5.52: PHPUnit 10.5.52

Compare Source

Changed
  • #​6321: Allow error_reporting=E_ALL for --check-php-configuration

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.51: PHPUnit 10.5.51

Compare Source

Changed
  • #​6308: Improve output of --check-php-configuration
  • The version number for the test result cache file has been incremented to reflect that its structure for PHPUnit 10.5 is not compatible with its structure for PHPUnit 8.5 and PHPUnit 9.6

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.50: PHPUnit 10.5.50

Compare Source

Changed
  • #​6300: Emit warning when the name of a data provider method begins with test
  • Do not use SplObjectStorage methods that will be deprecated in PHP 8.5

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.49: PHPUnit 10.5.49

Compare Source

Added
  • #​6297: --check-php-configuration CLI option for checking whether PHP is configured for testing
Fixed
  • Errors due to invalid data provided using #[TestWith] or #[TestWithJson] attributes are now properly reported

Learn how to install or update PHPUnit 10.5 in the documentation.

Keep up to date with PHPUnit:
  • You can follow @​[email protected] to stay up to date with PHPUnit's development.
  • You can subscribe to the PHPUnit Updates newsletter to receive updates about and tips for PHPUnit.

v10.5.48: PHPUnit 10.5.48

Compare Source

Fixed
  • #​6254: defects,randomconfiguration is supported by implementation, but it is not allowed by the XML configuration file schema

How to install or update PHPUnit

v10.5.47: PHPUnit 10.5.47

Compare Source

Added
  • #​6236: failOnPhpunitWarning attribute on the <phpunit> element of the XML configuration file and --fail-on-phpunit-warning CLI option for controlling whether PHPUnit should fail on PHPUnit warnings (default: true)
  • #​6239: --do-not-fail-on-deprecation, --do-not-fail-on-phpunit-warning, --do-not-fail-on-phpunit-deprecation, --do-not-fail-on-empty-test-suite, --do-not-fail-on-incomplete, --do-not-fail-on-notice, --do-not-fail-on-risky, --do-not-fail-on-skipped, and --do-not-fail-on-warning CLI options
  • --do-not-report-useless-tests CLI option as a replacement for --dont-report-useless-tests
Deprecated
  • --dont-report-useless-tests CLI option (use --do-not-report-useless-tests instead)
Fixed
  • #​6243: Constraints cannot be implemented without using internal class ExpectationFailedException

How to install or update PHPUnit

v10.5.46: PHPUnit 10.5.46

Compare Source

Added
  • displayDetailsOnAllIssues attribute on the <phpunit> element of the XML configuration file and --display-all-issues CLI option for controlling whether PHPUnit should display details on all issues that are triggered (default: false)
  • failOnAllIssues attribute on the <phpunit> element of the XML configuration file and --fail-on-all-issues CLI option for controlling whether PHPUnit should fail on all issues that are triggered (default: false)
Changed
  • #​5956: Improved handling of deprecated E_STRICT constant
  • Improved message when test is considered risky for printing unexpected output

How to install or update PHPUnit

v10.5.45: PHPUnit 10.5.45

Compare Source

Changed
  • #​6117: Include source location information for issues triggered during test in --debug output
  • #​6119: Improve message for errors that occur while parsing attributes

How to install or update PHPUnit

v10.5.44: PHPUnit 10.5.44

Compare Source

Fixed
  • #​6115: Backed enumerations with values not of type string cannot be used in customized TestDox output

How to install or update PHPUnit

v10.5.43: PHPUnit 10.5.43

Compare Source

Changed
  • Do not skip execution of test that depends on a test that is larger than itself

How to install or update PHPUnit

v10.5.42: PHPUnit 10.5.42

Compare Source

Fixed
  • #​6103: Output from test run in separate process is printed twice
  • #​6109: Skipping a test in a before-class method crashes JUnit XML logger
  • #​6111: Deprecations cause SourceMapper to scan all <source/> files

How to install or update PHPUnit

v10.5.41: PHPUnit 10.5.41

Compare Source

Added
  • Test\AfterLastTestMethodErrored, Test\AfterTestMethodErrored, Test\BeforeTestMethodErrored, Test\PostConditionErrored, and Test\PreConditionErrored events
Fixed
  • #​6094: Errors in after-last-test methods are not reported
  • #​6095: Expectation is not counted correctly when a doubled method is called more often than is expected
  • #​6098: No system-out element in JUnit XML logfile

How to install or update PHPUnit

v10.5.40: PHPUnit 10.5.40

Compare Source

Fixed
  • #​6082: assertArrayHasKey(), assertArrayNotHasKey(), arrayHasKey(), and ArrayHasKey::__construct() do not support all possible key types
  • #​6087: --migrate-configuration does not remove beStrictAboutTodoAnnotatedTests attribute from XML configuration file

How to install or update PHPUnit

v10.5.39: PHPUnit 10.5.39

Compare Source

Added
  • #​6081: DefaultResultCache::mergeWith() for merging result cache instances
Fixed
  • #​6066: TeamCity logger does not handle error/skipped events in before-class methods correctly

How to install or update PHPUnit

v10.5.38: PHPUnit 10.5.38

Compare Source

Changed
  • #​6012: Remove empty lines between TeamCity events

How to install or update PHPUnit

v10.5.37: PHPUnit 10.5.37

Compare Source

Fixed

How to install or update PHPUnit

v10.5.36: PHPUnit 10.5.36

Compare Source

Changed
  • #​5957: Skip data provider build when requirements are not satisfied
  • #​5969: Check for requirements before creating a separate process
  • Updated regular expressions used by StringMatchesFormatDescription constraint to be consistent with PHP's run-tests.php
Fixed
  • #​5965: PHPUnit\Framework\Exception does not handle string error codes (PDOException with error code 'HY000', for example)

How to install or update PHPUnit

v10.5.35: PHPUnit 10.5.35

Compare Source

Changed
  • #​5956: Deprecation of the E_STRICT constant in PHP 8.4
Fixed
  • #​5950: TestDox text should not be trim()med when it contains $ character
  • The attribute parser will no longer try to instantiate attribute classes that do not exist

How to install or update PHPUnit

v10.5.34: PHPUnit 10.5.34

Compare Source

Fixed
  • #​5931: Reverted addition of name property on <testsuites> element in JUnit XML logfile
  • #​5946: Callback throws a TypeError when checking a callable has variadic parameters

How to install or update PHPUnit

v10.5.33: PHPUnit 10.5.33

Compare Source

Fixed
  • #​4584: assertJsonStringEqualsJsonString() considers objects with sequential numeric keys equal to be arrays
  • #​4625: Generator yielding keys that are neither integer or string leads to hard-to-understand error message when used as data provider
  • #​4674: JSON assertions should treat objects as unordered
  • #​5891: Callback constraint does not handle variadic arguments correctly when used for mock object expectations
  • #​5929: TestDox output containing $ at the beginning gets truncated when used with a data provider

How to install or update PHPUnit

v10.5.32: PHPUnit 10.5.32

Compare Source

Added
  • #​5937: failOnPhpunitDeprecation attribute on the <phpunit> element of the XML configuration file and --fail-on-phpunit-deprecation CLI option for controlling whether PHPUnit deprecations should be considered when determining the test runner's shell exit code (default: do not consider)
  • displayDetailsOnPhpunitDeprecations attribute on the <phpunit> element of the XML configuration file and --display-phpunit-deprecations CLI option for controlling whether details on PHPUnit deprecations should be displayed (default: do not display)
Changed
  • #​5937: PHPUnit deprecations will, by default, no longer affect the test runner's shell exit code. This can optionally be turned back on using the --fail-on-phpunit-deprecation CLI option or the failOnPhpunitDeprecation="true" attribute on the <phpunit> element of the XML configuration file.
  • Details for PHPUnit deprecations will, by default, no longer be displayed. This can optionally be turned back on using the --display-phpunit-deprecations CLI option or the displayDetailsOnPhpunitDeprecations attribute on the <phpunit> element of the XML configuration file.

How to install or update PHPUnit

v10.5.31: PHPUnit 10.5.31

Compare Source

Changed
  • #​5931: name property on <testsuites> element in JUnit XML logfile
  • Removed .phpstorm.meta.php file as methods such as TestCase::createStub() use generics / template types for their return types and PhpStorm, for example, uses that information
Fixed
  • #​5884: TestDox printer does not consider that issues can be suppressed by attribute, baseline, source location, or @ operator

How to install or update PHPUnit

v10.5.30: PHPUnit 10.5.30

Compare Source

Changed
  • Improved error message when stubbed method is called more often than return values were configured for it

How to install or update PHPUnit

v10.5.29: PHPUnit 10.5.29

Compare Source

Fixed
  • #​5887: Issue baseline generator does not correctly handle ignoring suppressed issues
  • #​5908: --list-tests and --list-tests-xml CLI options do not report error when data provider method throws exception

How to install or update PHPUnit

v10.5.28: PHPUnit 10.5.28

Compare Source

Fixed
  • #​5898: Test\Passed event is not emitted for PHPT tests
  • --coverage-filter CLI option could not be used multiple times

How to install or update PHPUnit

v10.5.27: PHPUnit 10.5.27

Compare Source

Changed
  • Updated dependencies (so that users that install using Composer's --prefer-lowest CLI option also get recent versions)
Fixed
  • #​5892: Errors during write of phpunit.xml are not handled correctly when --generate-configuration is used

How to install or update PHPUnit

v10.5.26: PHPUnit 10.5.26

Compare Source

Added
  • --only-summary-for-coverage-text CLI option to reduce the code coverage report in text format to a summary
  • --show-uncovered-for-coverage-text CLI option to expand the code coverage report in text format to include a list of uncovered files

How to install or update PHPUnit

v10.5.25: PHPUnit 10.5.25

Compare Source

Changed
  • Updated dependencies for PHAR distribution

How to install or update PHPUnit

v10.5.24: PHPUnit 10.5.24

Compare Source

Changed
  • #​5877: Use array_pop() instead of array_shift() for processing Test objects in TestSuite::run() and optimize TestSuite::isEmpty()

How to install or update PHPUnit

v10.5.23: PHPUnit 10.5.23

Compare Source

Changed
  • #​5875: Also destruct TestCase objects early that use a data provider

How to install or update PHPUnit

v10.5.22: PHPUnit 10.5.22

Compare Source

Changed
  • #​5871: Do not collect unnecessary information using debug_backtrace()

How to install or update PHPUnit

v10.5.21: PHPUnit 10.5.21

Compare Source

Changed
  • #​5861: Destroy TestCase object after its test was run

How to install or update PHPUnit

v10.5.20: PHPUnit 10.5.20

Compare Source

  • #​5771: JUnit XML logger may crash when test that is run in separate process exits unexpectedly
  • #​5819: Duplicate keys from different data providers are not handled properly

How to install or update PHPUnit

v10.5.19: PHPUnit 10.5.19

Compare Source

Fixed
  • #​5818: Calling method() on a test stub created using createStubForIntersectionOfInterfaces() throws an unexpected exception

How to install or update PHPUnit

v10.5.18: PHPUnit 10.5.18

Compare Source

Deprecated
  • #​5812: Support for string array keys in data sets returned by data provider methods that do not match the parameter names of the test method(s) that use(s) them
Fixed
  • #​5795: Using @testWith annotation may generate PHP Warning: Uninitialized string offset 0

How to install or update PHPUnit

v10.5.17: PHPUnit 10.5.17

Compare Source

Changed
  • The namespaces of dependencies are now prefixed with PHPUnitPHAR instead of just PHPUnit for the PHAR distribution of PHPUnit

How to install or update PHPUnit

v10.5.16: PHPUnit 10.5.16

Compare Source

Changed
  • #​5766: Do not use a shell in proc_open() if not really needed
  • #​5772: Cleanup process handling after dropping temp-file handling
Fixed
  • #​5570: Windows does not support exclusive locks on stdout

How to install or update PHPUnit

v10.5.15: PHPUnit 10.5.15

Compare Source

Fixed
  • #​5765: Be more forgiving with error handlers that do not respect error suppression

How to install or update PHPUnit

v10.5.14: PHPUnit 10.5.14

Compare Source

Changed
  • #​5747: Cache result of Groups::groups()
  • #​5748: Improve performance of NamePrettifier::prettifyTestMethodName()
  • #​5750: Micro-optimize NamePrettifier::prettifyTestMethodName() once again
Fixed
  • #​5760: TestDox printer does not display details about exceptions raised in before-test methods

How to install or update PHPUnit

v10.5.13: PHPUnit 10.5.13

Compare Source

Changed
  • #​5727: Prevent duplicate call of NamePrettifier::prettifyTestMethodName()
  • #​5739: Micro-optimize NamePrettifier::prettifyTestMethodName()
  • #​5740: Micro-optimize TestRunner::runTestWithTimeout()
  • #​5741: Save call to Telemetry\System::snapshot()
  • #​5742: Prevent file IO when not strictly necessary
  • #​5743: Prevent unnecessary ExecutionOrderDependency::getTarget() call
  • #​5744: Simplify NamePrettifier::prettifyTestMethodName()
Fixed
  • #​5351: Incorrect code coverage metadata does not prevent code coverage data from being collected
  • #​5746: Using -d CLI option multiple times triggers warning

How to install or update PHPUnit

v10.5.12: PHPUnit 10.5.12

Compare Source

Fixed
  • #​5652: HRTime::duration() throws InvalidArgumentException

How to install or update PHPUnit

v10.5.11

Compare Source

v10.5.10

Compare Source

v10.5.9

Compare Source

v10.5.8

Compare Source

v10.5.7

Compare Source

v10.5.6

Compare Source

v10.5.5

Compare Source

v10.5.4

Compare Source

v10.5.3

Compare Source

v10.5.2

Compare Source

v10.5.1

Compare Source

v10.5.0

Compare Source

v10.4.2

Compare Source

v10.4.1

Compare Source

v10.4.0

Compare Source

v10.3.5

Compare Source

v10.3.4

Compare Source

v10.3.3

Compare Source

v10.3.2

Compare Source

v10.3.1

Compare Source

v10.3.0

Compare Source

v10.2.7

Compare Source

v10.2.6

Compare Source

v10.2.5

Compare Source

v10.2.4

Compare Source

v10.2.3

Compare Source

v10.2.2

Compare Source

v10.2.1

Compare Source

v10.2.0

Compare Source

v10.1.3

Compare Source

v10.1.2

Compare Source

v10.1.1

Compare Source

v10.1.0

Compare Source

v10.0.19

Compare Source

v10.0.18

Compare Source

v10.0.17

Compare Source

v10.0.16

Compare Source

v10.0.15

Compare Source

v10.0.14

Compare Source

v10.0.13

Compare Source

v10.0.12

Compare Source

v10.0.11

Compare Source

v10.0.10

Compare Source

v10.0.9

Compare Source

v10.0.8

Compare Source

v10.0.7

Compare Source

v10.0.6

Compare Source

v10.0.5

Compare Source

v10.0.4

Compare Source

v10.0.3

Compare Source

v10.0.2

Compare Source

v10.0.1

Compare Source

v10.0.0

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "every weekend" (UTC).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

tag:gitlab.com,2025-12-18:4926813158 Chris Burgess commented on merge request !20 at Behat Chrome / behat-chrome-extension 2025-12-18T17:43:23Z xurizaemon Chris Burgess

Done: https://gitlab.com/behat-chrome/behat-chrome-extension/-/releases/1.4.1

Thanks @mpdude!

tag:gitlab.com,2025-12-18:4926810765 Chris Burgess pushed new project tag 1.4.1 at Behat Chrome / behat-chrome-extension 2025-12-18T17:42:30Z xurizaemon Chris Burgess

Chris Burgess (b4262f4b) at 18 Dec 17:42

Merge branch 'declare-return-types' into 'main'

tag:gitlab.com,2025-12-18:4926801778 Chris Burgess pushed to project branch main at Behat Chrome / behat-chrome-extension 2025-12-18T17:39:13Z xurizaemon Chris Burgess

Chris Burgess (b4262f4b) at 18 Dec 17:39

Merge branch 'declare-return-types' into 'main'

... and 1 more commit

tag:gitlab.com,2025-12-18:4926801760 Chris Burgess accepted merge request !23: Add return types to Driver Factory at Behat Chrome / behat-chrome-extension 2025-12-18T17:39:13Z xurizaemon Chris Burgess

This adds return types to the DriverFactory implementation where they might be coming up in the future.

Adding return types "bottom up" from here is backwards compatible in PHP (except for people extending this class, which is probably not a real-life use case).

tag:gitlab.com,2025-12-18:4926801711 Chris Burgess commented on merge request !23 at Behat Chrome / behat-chrome-extension 2025-12-18T17:39:12Z xurizaemon Chris Burgess

LGTM, thanks @mpdude

tag:gitlab.com,2025-12-17:4922821868 Matthias Pigulla commented on merge request !23 at Behat Chrome / behat-chrome-extension 2025-12-17T18:45:15Z mpdude Matthias Pigulla

cross-reference https://github.com/FriendsOfBehat/MinkExtension/issues/43

tag:gitlab.com,2025-12-17:4922820769 Matthias Pigulla opened merge request !23: Add return types to Driver Factory at Behat Chrome / behat-chrome-extension 2025-12-17T18:44:52Z mpdude Matthias Pigulla

This adds return types to the DriverFactory implementation where they might be coming up in the future.

Adding return types "bottom up" from here is backwards compatible in PHP (except for people extending this class, which is probably not a real-life use case).

tag:gitlab.com,2025-12-17:4921118809 Matthias Pigulla commented on merge request !20 at Behat Chrome / behat-chrome-extension 2025-12-17T11:17:54Z mpdude Matthias Pigulla

@xurizaemon Do you think you could tag a 1.4.1 release with this change?

tag:gitlab.com,2025-12-05:4883255946 Chris Burgess accepted merge request !20: Prepare for Behat 4.x / Symfomy 8.x compatibility at Behat Chrome / behat-chrome-extension 2025-12-05T10:51:40Z xurizaemon Chris Burgess

Symfony 8 added return types to all interfaces and classes. This leaks through the Behat API in places where Behat used classes from Symfony, for example the Event Dispatcher implementation or the \Behat\Testwork\ServiceContainer\Extension interface which extends \Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface.

The Behat maintainers work on creating a new Behat release supporting Symfony 8, but it will also affect extensions like this one (https://github.com/Behat/Behat/pull/1687).

tag:gitlab.com,2025-12-05:4883255945 Chris Burgess pushed to project branch main at Behat Chrome / behat-chrome-extension 2025-12-05T10:51:40Z xurizaemon Chris Burgess

Chris Burgess (2e9475d5) at 05 Dec 10:51

Merge branch 'nprepare-behat-4' into 'main'

... and 1 more commit

tag:gitlab.com,2025-12-05:4883255866 Chris Burgess commented on merge request !20 at Behat Chrome / behat-chrome-extension 2025-12-05T10:51:38Z xurizaemon Chris Burgess

Thanks!

tag:gitlab.com,2025-12-05:4883058217 Matthias Pigulla commented on merge request !20 at Behat Chrome / behat-chrome-extension 2025-12-05T10:02:07Z mpdude Matthias Pigulla

I have rebased this, but removed the composer.json compatibility declaration for behat/behat ^4.0, since that is not yet a thing.

The one-line change made here can be applied right now, it is compatible with current Behat and Symfony releases.

tag:gitlab.com,2025-12-04:4881240910 Chris Burgess opened issue #6: CI builds fail - 2025-12 at Behat Chrome / docker-chrome-headless 2025-12-04T19:20:10Z xurizaemon Chris Burgess tag:gitlab.com,2025-12-04:4881059227 Chris Burgess commented on merge request !20 at Behat Chrome / behat-chrome-extension 2025-12-04T18:13:48Z xurizaemon Chris Burgess

I've made a small change (!21 (merged)) which should fix this for you - please rebase?

The CI configuration was requiring a "docker" tag on the CI runner, and the runner no longer had that tag applied.

tag:gitlab.com,2025-12-04:4881052603 Chris Burgess deleted project branch ci-update-php at Behat Chrome / behat-chrome-extension 2025-12-04T18:11:03Z xurizaemon Chris Burgess

Chris Burgess (f55b15a9) at 04 Dec 18:11

tag:gitlab.com,2025-12-04:4881052529 Chris Burgess pushed to project branch main at Behat Chrome / behat-chrome-extension 2025-12-04T18:11:02Z xurizaemon Chris Burgess

Chris Burgess (ae0030c1) at 04 Dec 18:11

Merge branch 'ci-update-php' into 'main'

... and 1 more commit

tag:gitlab.com,2025-12-04:4881052527 Chris Burgess accepted merge request !22: Test with PHP 8.1 - 8.4 at Behat Chrome / behat-chrome-extension 2025-12-04T18:11:02Z xurizaemon Chris Burgess

Updated tested PHP versions to match dmore/chrome-mink-driver

tag:gitlab.com,2025-12-04:4881051299 Chris Burgess opened merge request !22: Test with PHP 8.1 - 8.4 at Behat Chrome / behat-chrome-extension 2025-12-04T18:10:35Z xurizaemon Chris Burgess

Updated tested PHP versions to match dmore/chrome-mink-driver