Skip to content

Update dependency phpunit/phpunit to v12 #501

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: 1.39.x
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Feb 8, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
phpunit/phpunit (source) ^11.5.25 -> ^12.3.4 age adoption passing confidence

Release Notes

sebastianbergmann/phpunit (phpunit/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


Configuration

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

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

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

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


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

Read more about the use of Renovate Bot within ocramius/* projects.

@renovate renovate bot added the renovate label Feb 8, 2025
Copy link
Contributor Author

renovate bot commented Feb 8, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: composer.lock
Command failed: composer update phpunit/phpunit:12.3.4 --with-dependencies --ignore-platform-req='ext-*' --ignore-platform-req='lib-*' --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins --minimal-changes
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires phpunit/phpunit ^12.3.4 -> satisfiable by phpunit/phpunit[12.3.4].
    - phpunit/phpunit 12.3.4 requires php >=8.3 -> your php version (8.2.99; overridden via config.platform, actual: 8.2.29) does not satisfy that requirement.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 5 times, most recently from cb42640 to 1767af8 Compare February 15, 2025 06:35
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 4 times, most recently from c5f63f1 to fd21d63 Compare February 21, 2025 07:07
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 2 times, most recently from b8cff13 to d899095 Compare February 27, 2025 18:03
@renovate renovate bot changed the base branch from 1.37.x to 1.38.x February 27, 2025 18:04
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 5 times, most recently from 2b66f76 to f921f37 Compare March 5, 2025 16:27
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 4 times, most recently from b6cb583 to 14a80a8 Compare March 12, 2025 02:18
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 6 times, most recently from 77de41b to eda120c Compare March 19, 2025 19:13
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch from eda120c to faf5858 Compare March 23, 2025 19:13
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 4 times, most recently from 6a384a4 to f3dddc9 Compare July 11, 2025 05:10
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 5 times, most recently from 2b0a85c to 338ec2d Compare July 18, 2025 06:13
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 4 times, most recently from cfb71d7 to 151f7ac Compare July 30, 2025 06:52
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 4 times, most recently from 7ba4d04 to ff7e9e3 Compare August 2, 2025 04:57
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch 11 times, most recently from 6e87513 to fb4b68a Compare August 14, 2025 10:06
| datasource | package         | from    | to     |
| ---------- | --------------- | ------- | ------ |
| packagist  | phpunit/phpunit | 11.5.32 | 12.3.4 |
@renovate renovate bot force-pushed the renovate/phpunit-phpunit-12.x branch from fb4b68a to 1984122 Compare August 15, 2025 05:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants