Update dependency phpunit/phpunit to v13 - #41
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
2 times, most recently
from
February 10, 2026 13:09
0f3ed20 to
e553945
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
3 times, most recently
from
February 18, 2026 13:01
8e80e3f to
5668e2b
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
2 times, most recently
from
April 3, 2026 09:17
9800129 to
dc648e9
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
2 times, most recently
from
April 13, 2026 09:29
797e8d5 to
42dbb66
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
4 times, most recently
from
April 18, 2026 09:04
9482980 to
03ecd68
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
2 times, most recently
from
April 20, 2026 20:44
03ecd68 to
c85f10d
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
from
May 1, 2026 14:38
c85f10d to
c169850
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
2 times, most recently
from
May 15, 2026 09:50
114669e to
9baf498
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
3 times, most recently
from
May 27, 2026 16:53
6966aee to
5fee4c2
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
2 times, most recently
from
June 5, 2026 06:30
eb1c47d to
b4518ce
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
from
June 15, 2026 22:40
b4518ce to
f3f119b
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
2 times, most recently
from
July 6, 2026 20:00
2d5b3db to
7d5ae1f
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
from
July 8, 2026 09:52
7d5ae1f to
9a1bc40
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
2 times, most recently
from
July 28, 2026 18:48
de71162 to
8e09280
Compare
renovate
Bot
force-pushed
the
renovate/phpunit-phpunit-13.x
branch
from
August 7, 2026 09:30
8e09280 to
a85ac80
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
9.5.14→13.3.0Release Notes
sebastianbergmann/phpunit (phpunit/phpunit)
v13.3.0: PHPUnit 13.3.0Compare Source
Added
--repeatCLI option and#[Repeat]attributeexpectOutputString()andexpectOutputRegex()to be combined and repeated#[CoversNothing]on methods--retryCLI option#[Retry]attributefailOnAllIssues="true"is combined with an explicitly disabled fine-grainedfailOn*setting--record-test-run-historyand--do-not-record-test-run-historyCLI options as well as therecordTestRunHistoryattribute for the XML configuration file to control whether the status and duration of each test are recorded for use by--order-by defectsand--order-by duration-*--without-class-viewCLI option andclassViewattribute for the XML configuration file to disable the class-oriented view in the HTML code coverage report--without-file-viewCLI option andfileViewattribute for the XML configuration file to disable the file-oriented view in the HTML code coverage report{PWD}is now substituted with the directory of the PHPT test file in--ENV--and--INI--sections of PHPT test files{TMP}(system directory for temporary files) and{ENV:name}(value of environment variablename) are now substituted in--INI--sections of PHPT test files--INI--section references an environment variable that is not set is now skipped--SKIPIF--section of a PHPT test file that printsxfail <reason>now marks the test as expected to fail, as if the PHPT test file had an--XFAIL--section with that reasonChanged
test-run-historyinstead oftest-resultsTestCaseno longer captureserror_log()output for tests that do not useexpectErrorLog(), avoiding the cost of setting up error log redirection for every testerror_log()output from tests without an expectation is no longer echoed (date-stripped) to PHPUnit's output; it goes to the configured error log again, as it did before capture was introducederror_log()withoutexpectErrorLog()now produces stderr output in the child process, which the test runner reports as a test error--XFAIL--section orxfailoutput from the--SKIPIF--section) but passes is now considered risky; this usually means the expected-failure marker is stale and should be removed--SKIPIF--section produces output that is not recognized is now considered risky; this usually means the skip check itself is broken. The keywords understood by PHP's own test runner that have no PHPUnit counterpart (info,warn,xleak,flaky, andnocache) are tolerated and do not make the test riskydate.timezone=UTC,display_startup_errors=1,fatal_error_backtraces=Off,ignore_repeated_errors=0,precision=14,serialize_precision=-1), consistent with PHP's own test runner; all of them can be overridden per test using the--INI--sectionDeprecated
--cache-resultCLI option, use--record-test-run-historyinstead--do-not-cache-resultCLI option, use--do-not-record-test-run-historyinsteadcacheResultXML configuration attribute, userecordTestRunHistoryinsteadPHPUnit\TextUI\Configuration\Configuration::cacheResult(), usePHPUnit\TextUI\Configuration\Configuration::recordTestRunHistory()insteadPHPUnit\TextUI\Configuration\Configuration::testResultCacheFile(), usePHPUnit\TextUI\Configuration\Configuration::testRunHistoryFile()insteadFixed
expectErrorLog()now only considerserror_log()output written after it was called; previously, the expectation was also satisfied by output written beforeexpectErrorLog()was called--FILE--,--FILEEOF--, and--FILE_EXTERNAL--sections, or more than one expectation section (--EXPECT--,--EXPECTF--,--EXPECTREGEX--, and their_EXTERNALvariants) are now rejected; previously, misspelled sections were silently ignored and duplicated sections silently overwrote each other--EXPECTREGEX--section must now match the PHPT test's entire output, and.now matches newline characters, consistent with PHP's own test runner; previously, a match on a substring of the output was sufficient for the test to pass--SKIPIF--section of a PHPT test is no longer mangled when it follows theskip <reason>convention used by PHP's own test suite; previously, the first two characters of the reason were stripped unless theskip: <reason>orskip - <reason>convention was usedPHPUnit\Runner\Phpt\InvalidPhptFileExceptionwhen a PHPT test file has an empty--FILE--or--FILEEOF--section or a--FILE_EXTERNAL--section that references an empty file; such a file is now rejected while it is parsed and reported as an errored testPHPUnit\Runner\Phpt\InvalidPhptFileExceptionnow has a message that explains why the PHPT test file was rejectedLearn how to install or update PHPUnit 13.3 in the documentation.
Keep up to date with PHPUnit:
v13.2.6: PHPUnit 13.2.6Compare Source
Fixed
Learn how to install or update PHPUnit 13.2 in the documentation.
Keep up to date with PHPUnit:
v13.2.5: PHPUnit 13.2.5Compare Source
Changed
RequiresPhp,RequiresPhpunit, orRequiresPhpExtensionversion requirement now include the version that is actually being usedFixed
@error suppression and forwards suppressed warnings to previous error handlerassertArrayHasKey()does not acceptArrayAccessimplementations with a specific value type when test code is analysed with PHPStan at level 9Learn how to install or update PHPUnit 13.2 in the documentation.
Keep up to date with PHPUnit:
v13.2.4: PHPUnit 13.2.4Compare Source
Fixed
error_reporting()output dynamicallyLearn how to install or update PHPUnit 13.2 in the documentation.
Keep up to date with PHPUnit:
v13.2.3Compare Source
v13.2.2: PHPUnit 13.2.2Compare Source
Fixed
Learn how to install or update PHPUnit 13.2 in the documentation.
Keep up to date with PHPUnit:
v13.2.1: PHPUnit 13.2.1Compare Source
Fixed
--filtermatches the name of a data set but not the name of the test methodLearn how to install or update PHPUnit 13.2 in the documentation.
Keep up to date with PHPUnit:
v13.2.0: PHPUnit 13.2.0Compare Source
Added
IsTrue,IsFalse,IsNull,IsFinite,IsInfinite, andIsNanconstraints#[RunTestsInSeparateProcesses]from parent test classesassertContainsEquals()should usesebastian/comparatorfor element comparison--SKIPIF--does not have standard-output side effect$_dataNameavailable to#[TestDoxFormatter]callbacks$skipWhenEmptyparameter for#[DataProvider]and#[DataProviderExternal]--stop-on-defect,--stop-on-error, etc. to accept an optional thresholdwillReturnMap()with constraint support and strict matching--list-test-idsCLI option and enhance--filterCLI option to support test ID syntax--run-test-id <test-id>CLI option that accepts a single test ID for exact matching--compactCLI option andPHPUNIT_COMPACT_OUTPUT=1environment variable)--disable-coverage-targetingCLI optionexecutionOrderattribute in the XML configuration file now acceptsdefectscombined with any main order, as well as three-way combinations ofdepends/no-depends,defects, and a main order (for example,depends,defects,duration-ascending)--validate-configurationCLI option to validate an XML configuration file for PHPUnitChanged
sebastian/file-filterinSourceFilter::includes()for issue trigger identification#[IgnoreDeprecations]to be repeated--filterIsEqual,IsEqualCanonicalizing,IsEqualIgnoringCase,IsEqualWithDelta, andTraversableContainsEqualconstraints or theassertEquals(),assertEqualsCanonicalizing(),assertEqualsIgnoringCase(),assertEqualsWithDelta(), andassertContainsEquals()assertionsDeprecated
--order-by durationCLI option, use--order-by duration-ascendinginstead--order-by sizeCLI option, use--order-by size-ascendinginsteadexecutionOrder="duration"XML configuration attribute value, useexecutionOrder="duration-ascending"insteadexecutionOrder="size"XML configuration attribute value, useexecutionOrder="size-ascending"insteadexpectExceptionMessage(), useexpectExceptionMessageIsOrContains()insteadFixed
auto_prepend_file) cause false "risky test" warningsTestSuiteSorter::cmpSize()does not handleTestSuiteobjects forTestCaseclassesLearn how to install or update PHPUnit 13.2 in the documentation.
Keep up to date with PHPUnit:
v13.1.14: PHPUnit 13.1.14Compare Source
Fixed
assertNotEquals()failure message says "is equal to" instead of "is not equal to" when comparing arrays or objectsexpectOutputString()andexpectOutputRegex()silently replace themselves and each otherLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.13: PHPUnit 13.1.13Compare Source
Fixed
assertXmlStringEqualsXmlString()regressed into treating comments as significantLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.12: PHPUnit 13.1.12Compare Source
Fixed
-dsettings forwarded to child processes (breaks PCOV coverage)Learn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.11: PHPUnit 13.1.11Compare Source
Fixed
=need to be quoted before forwarding via-dLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.10: PHPUnit 13.1.10Compare Source
Changed
Learn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.9: PHPUnit 13.1.9Compare Source
Changed
TestorTestsprefix is no longer stripped from class names when they are processed for TestDox outputFixed
Learn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.8: PHPUnit 13.1.8Compare Source
Fixed
testStartedandtestFinishedassertArrays*IgnoringOrder()fails on mixed scalar types and on reordered nested associative arraysMockBuilder::setMockClassName()andTestStubBuilder::setStubClassName()now reject values that are not valid unqualified PHP class identifiers, throwing the newInvalidClassNameExceptionGenerator::ensureValidMethods()to validate method names passed toMockBuilder::onlyMethods()andaddMethods()was not anchored, so any string containing a valid identifier substring (including strings with parentheses, braces, comments, or newlines) was acceptedLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.7: PHPUnit 13.1.7Compare Source
Changed
LIBXML_NONETwhen parsing/validating XML configuration files to make explicit that no network I/O is performedLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.6: PHPUnit 13.1.6Compare Source
Fixed
;and"are not preserved when forwarding settings to child processesLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.5: PHPUnit 13.1.5Compare Source
Fixed
-dsettings are not forwarded to child processes for process isolationRequiresPhp(e.g.<=8.5) is compared against full PHP version, causing unexpected skipsdataSetAsStringWithData()raises "float is not representable as int" warning for large floats in data setsLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.4: PHPUnit 13.1.4Compare Source
Fixed
DefaultJobRunnerdeadlocks on child processes that write large amounts of stderr output$_SERVERentries leak from parent into child processfailOnEmptyTestSuite="false"inphpunit.xmlis ignored when--group/--filter/--testsuitematches no testsLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.3: PHPUnit 13.1.3Compare Source
Fixed
Learn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.2: PHPUnit 13.1.2Compare Source
Fixed
--random-order-seedis used when test execution order is not random--filterdoes not work when filter string starts with#TestSuiteSkippedevent--filter,--group,--testsuite) yields no teststearDown()and handler restoration, causing subsequent tests to be marked as riskyLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.1: PHPUnit 13.1.1Compare Source
Changed
exitwas called from some testFixed
colors="true"in XML configuration file does not unconditionally enable colored output--migrate-configurationdoes not update schema location when XML content already validates against current schemawillReturnCallback()is silently swallowed when code under test catches exceptionsset_include_path()TestDoubleBuildermethod chainingLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.1.0: PHPUnit 13.1.0Compare Source
Added
includeInCodeCoverageattribute for<directory>and<file>children of<source>#[Group]information in Open Test Reporting (OTR) XML logfile#[DataProviderClosure]for static closures<issueTriggerResolvers>in the XML configuration file%r...%rinEXPECTFsectionoutputDirectoryattribute, allowing the output directory to be specified later with the--coverage-htmlCLI optionChanged
StringMatchesFormatDescriptionconstraint which is used byassertFileMatchesFormat(),assertFileMatchesFormatFile(),assertStringMatchesFormat(),assertStringMatchesFormatFile(), andEXPECTFsections of PHPT test filesPHPUnit\Runner\Extension\Facadefrom a concrete class to an interface and introduced an internalExtensionFacadeimplementation, so that extensions only depend on theFacadeinterface while PHPUnit internally uses theExtensionFacadeclass that also provides query methodsDeprecated
--log-events-verbose-text <file>CLI optionid()andafter()for mock object expectationsFixed
FILE_EXTERNALbreaks__DIR__TestSuiteLoaderis brittle and causes "Class FooTest not found" even for valid tests in valid filenamesLearn how to install or update PHPUnit 13.1 in the documentation.
Keep up to date with PHPUnit:
v13.0.6: PHPUnit 13.0.6Compare Source
Changed
Fixed
RegularExpressionandStringMatchesFormatDescriptiondid not handlepreg_match()errors such asCompilation failed: regular expression is too largeLearn how to install or update PHPUnit 13.0 in the documentation.
Keep up to date with PHPUnit:
v13.0.5: PHPUnit 13.0.5Compare Source
Fixed
Learn how to install or update PHPUnit 13.0 in the documentation.
Keep up to date with PHPUnit:
v13.0.4: PHPUnit 13.0.4Compare Source
Fixed
Learn how to install or update PHPUnit 13.0 in the documentation.
Keep up to date with PHPUnit:
v13.0.3: PHPUnit 13.0.3Compare Source
Fixed
<ini />can silently failLearn how to install or update PHPUnit 13.0 in the documentation.
Keep up to date with PHPUnit:
v13.0.2: PHPUnit 13.0.2Compare Source
Deprecated
atLeast()with an argument that is not positivewith*()withoutexpects()Fixed
SourceMappermay be deleted prematurely when multiple PHPUnit processes run in parallelwith()is used withoutexpects()Learn how to install or update PHPUnit 13.0 in the documentation.
Keep up to date with PHPUnit:
v13.0.1: PHPUnit 13.0.1Compare Source
Fixed
method()returnsInvocationMockerinstead ofInvocationStubberfor test stubsLearn how to install or update PHPUnit 13.0 in the documentation.
Keep up to date with PHPUnit:
v13.0.0: PHPUnit 13.0.0Compare Source
Added
TestCase::invokeTestMethod()method for customizing test method invocationwithParameterSetsInOrder()andwithParameterSetsInAnyOrder()for expecting calls to the same method of a mock object but with different argumentsassertArraysAreIdentical(),assertArraysAreIdenticalIgnoringOrder(),assertArraysHaveIdenticalValues(),assertArraysHaveIdenticalValuesIgnoringOrder(),assertArraysAreEqual(),assertArraysAreEqualIgnoringOrder(),assertArraysHaveEqualValues(), andassertArraysHaveEqualValuesIgnoringOrder()assertions--test-files-file <file>CLI option to configure a file that contains the paths to the test files to be loaded (one file per line); use this when using CLI arguments is not an option due to argument length limitationsDeprecated
any()matcher (hard deprecation)Removed
Assert::isType()assertContainsOnly()andassertNotContainsOnly()containsOnly()testClassName()method on event value objects for hook methods called for test methodsConfiguration::includeTestSuite()andConfiguration::excludeTestSuite()--dont-report-useless-testsCLI option#[CoversNothing]on a test method#[RunClassInSeparateProcess]attributeLearn how to install or update PHPUnit 13.0 in the documentation.
Keep up to date with PHPUnit:
v12.5.33: PHPUnit 12.5.33Compare Source
Fixed
Learn how to install or update PHPUnit 12.5 in the documentation.
Keep up to date with PHPUnit:
v12.5.32: PHPUnit 12.5.32Compare Source
Fixed
assertArrayHasKey()does not acceptArrayAccessimplementations with a specific value type when test code is analysed with PHPStan at level 9Learn how to install or update PHPUnit 12.5 in the documentation.
Keep up to date with PHPUnit:
v12.5.31Compare Source
v12.5.30: PHPUnit 12.5.30Compare Source
Fixed
Learn how to install or update PHPUnit 12.5 in the documentation.
Keep up to date with PHPUnit:
v12.5.29: PHPUnit 12.5.29Compare Source
Fixed
assertNotEquals()failure message says "is equal to" instead of "is not equal to" when comparing arrays or objectsexpectOutputString()andexpectOutputRegex()silently replace themselves and each otherLearn how to install or update PHPUnit 12.5 in the documentation.
Keep up to date with PHPUnit:
Configuration
📅 Schedule: (UTC)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.