11 KiB
Executable File
11 KiB
Executable File
Changes in PHPUnit 11.5
All notable changes of the PHPUnit 11.5 release series are documented in this file using the Keep a CHANGELOG principles.
11.5.15 - 2025-03-23
Changed
- #6150: Reverted change introduced in PHPUnit 11.5.13
11.5.14 - 2025-03-19
Changed
- Updated dependencies for PHAR distribution
11.5.13 - 2025-03-18
Changed
- #6150: Trigger warning when code coverage analysis is performed and no cache directory is configured
11.5.12 - 2025-03-07
Fixed
- #5976: TestDox result printer does not display details about errors triggered in before-first-test and after-last-test methods
11.5.11 - 2025-03-05
Fixed
- #6142:
$expectedand$actualare mixed up in failure description whenassertJsonFileEqualsJsonFile()fails
11.5.10 - 2025-02-25
Fixed
- #6138: Test with failed expectation on value passed to mocked method is incorrectly considered risky
11.5.9 - 2025-02-21
Fixed
- #6134: Missing event when child process ends unexpectedly
11.5.8 - 2025-02-18
Fixed
- A
Test\PreparationFailedevent is now emitted in addition to aTest\Erroredevent when an unexpected exception is triggered in a before-test method - A
Test\Passedevent is no longer emitted in addition to aTest\FailedorTest\Erroredevent when an assertion failure or an unexpected exception is triggered in an after-test method - A
TestSuite\Finishedevent is now emitted when a before-first-test method errors
11.5.7 - 2025-02-06
Changed
- #5951: The
includeUncoveredFilesconfiguration option is no longer deprecated - #6117: Include source location information for issues triggered during test in
--debugoutput - #6119: Improve message for errors that occur while parsing attributes
- #6120: Allow negative priorities for hook methods
11.5.6 - 2025-01-31
Changed
- #6112: Improve performance of
SourceMapper
Fixed
- #6115: Backed enumerations with values not of type
stringcannot be used in customized TestDox output
11.5.5 - 2025-01-29
Changed
- Do not skip execution of test that depends on a test that is larger than itself
11.5.4 - 2025-01-28
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
SourceMapperto scan all<source/>files
11.5.3 - 2025-01-13
Added
Test\AfterLastTestMethodErrored,Test\AfterTestMethodErrored,Test\BeforeTestMethodErrored,Test\PostConditionErrored, andTest\PreConditionErroredevents
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-xmlis broken when a group with a numeric name is defined - #6098: No
system-outelement in JUnit XML logfile - #6100: Suppressed deprecations incorrectly stop test execution when execution should be stopped on deprecation
11.5.2 - 2024-12-21
Fixed
- #6082:
assertArrayHasKey(),assertArrayNotHasKey(),arrayHasKey(), andArrayHasKey::__construct()do not support all possible key types - #6087:
--migrate-configurationdoes not removebeStrictAboutTodoAnnotatedTestsattribute from XML configuration file
11.5.1 - 2024-12-11
Added
- #6081:
DefaultResultCache::mergeWith()for merging result cache instances
Fixed
- #6066: TeamCity logger does not handle error/skipped events in before-class methods correctly
11.5.0 - 2024-12-06
Added
- #5948: Support for Property Hooks in Test Doubles
- #5954: Provide a way to stop execution at a particular deprecation
- Method
assertContainsNotOnlyInstancesOf()in thePHPUnit\Framework\Assertclass as the inverse of theassertContainsOnlyInstancesOf()method - Methods
assertContainsOnlyArray(),assertContainsOnlyBool(),assertContainsOnlyCallable(),assertContainsOnlyFloat(),assertContainsOnlyInt(),assertContainsOnlyIterable(),assertContainsOnlyNull(),assertContainsOnlyNumeric(),assertContainsOnlyObject(),assertContainsOnlyResource(),assertContainsOnlyClosedResource(),assertContainsOnlyScalar(), andassertContainsOnlyString()in thePHPUnit\Framework\Assertclass as specialized alternatives for the genericassertContainsOnly()method - Methods
assertContainsNotOnlyArray(),assertContainsNotOnlyBool(),assertContainsNotOnlyCallable(),assertContainsNotOnlyFloat(),assertContainsNotOnlyInt(),assertContainsNotOnlyIterable(),assertContainsNotOnlyNull(),assertContainsNotOnlyNumeric(),assertContainsNotOnlyObject(),assertContainsNotOnlyResource(),assertContainsNotOnlyClosedResource(),assertContainsNotOnlyScalar(), andassertContainsNotOnlyString()in thePHPUnit\Framework\Assertclass as specialized alternatives for the genericassertNotContainsOnly()method - Methods
containsOnlyArray(),containsOnlyBool(),containsOnlyCallable(),containsOnlyFloat(),containsOnlyInt(),containsOnlyIterable(),containsOnlyNull(),containsOnlyNumeric(),containsOnlyObject(),containsOnlyResource(),containsOnlyClosedResource(),containsOnlyScalar(), andcontainsOnlyString()in thePHPUnit\Framework\Assertclass as specialized alternatives for the genericcontainsOnly()method - Methods
isArray(),isBool(),isCallable(),isFloat(),isInt(),isIterable(),isNumeric(),isObject(),isResource(),isClosedResource(),isScalar(),isString()in thePHPUnit\Framework\Assertclass as specialized alternatives for the genericisType()method TestRunner\ChildProcessStartedandTestRunner\ChildProcessFinishedevents
Changed
- #5998: Do not run
SKIPIFsection of PHPT test in separate process when it is free of side effects - #5999: Do not run
CLEANsection of PHPT test in separate process when it is free of side effects that modify the parent process
Deprecated
- #6052:
isType()(useisArray(),isBool(),isCallable(),isFloat(),isInt(),isIterable(),isNull(),isNumeric(),isObject(),isResource(),isClosedResource(),isScalar(), orisString()instead) - #6055:
assertContainsOnly()(useassertContainsOnlyArray(),assertContainsOnlyBool(),assertContainsOnlyCallable(),assertContainsOnlyFloat(),assertContainsOnlyInt(),assertContainsOnlyIterable(),assertContainsOnlyNumeric(),assertContainsOnlyObject(),assertContainsOnlyResource(),assertContainsOnlyClosedResource(),assertContainsOnlyScalar(), orassertContainsOnlyString()instead) - #6055:
assertNotContainsOnly()(useassertContainsNotOnlyArray(),assertContainsNotOnlyBool(),assertContainsNotOnlyCallable(),assertContainsNotOnlyFloat(),assertContainsNotOnlyInt(),assertContainsNotOnlyIterable(),assertContainsNotOnlyNumeric(),assertContainsNotOnlyObject(),assertContainsNotOnlyResource(),assertContainsNotOnlyClosedResource(),assertContainsNotOnlyScalar(), orassertContainsNotOnlyString()instead) - #6059:
containsOnly()(usecontainsOnlyArray(),containsOnlyBool(),containsOnlyCallable(),containsOnlyFloat(),containsOnlyInt(),containsOnlyIterable(),containsOnlyNumeric(),containsOnlyObject(),containsOnlyResource(),containsOnlyClosedResource(),containsOnlyScalar(), orcontainsOnlyString()instead)