8.6 KiB
8.6 KiB
Changes in PHPUnit 12.5
All notable changes of the PHPUnit 12.5 release series are documented in this file using the Keep a CHANGELOG principles.
12.5.17 - 2026-04-08
Changed
- #4793: Exit with non-zero exit code when
exitwas called from some test
Fixed
- #5881:
colors="true"in XML configuration file does not unconditionally enable colored output - #6019:
--migrate-configurationdoes not update schema location when XML content already validates against current schema - #6372: Assertion failure inside
willReturnCallback()is silently swallowed when code under test catches exceptions - #6464: Process isolation template unconditionally calls
set_include_path() - #6571: Static analysis errors for
TestDoubleBuildermethod chaining
12.5.16 - 2026-04-03
Added
- #6547: Support for
%r...%rinEXPECTFsection
Fixed
- #6025:
FILE_EXTERNALbreaks__DIR__ - #6351: No warning when the same test runner extension is configured more than once
- #6433: Logic in
TestSuiteLoaderis brittle and causes "Class FooTest not found" even for valid tests in valid filenames - #6463: Process Isolation fails on non-serializable globals and quietly ignore closures
12.5.15 - 2026-03-31
Changed
- #4440: Improve error when configured code coverage file list is empty
- #6549: Allow to stub both hooks of non-virtual properties
Fixed
- #6529: Git "detached HEAD state" in Open Test Reporting (OTR) XML logger not handled properly
- #6545: Stubbing a class with set property hook leaves property uninitialized by default
- The
RegularExpressionandStringMatchesFormatDescriptiondid not handlepreg_match()errors such asCompilation failed: regular expression is too large
12.5.14 - 2026-02-18
Fixed
- #6521: Performance regression in PHPUnit 11.5.54, PHPUnit 12.5.13, and PHPUnit 13.0.4
12.5.13 - 2026-02-18
Fixed
- #6489: Classification of self/direct/indirect deprecation triggers is not aligned with Symfony's bridge for PHPUnit
12.5.12 - 2026-02-16
Fixed
12.5.11 - 2026-02-10
Deprecated
- #6510: Deprecate using
with*()on test stubs
Fixed
- #6503: Temporary file used by
SourceMappermay be deleted prematurely when multiple PHPUnit processes run in parallel - #6509: "No expectations were configured for the mock object ..." notice is emitted when
with()is used withoutexpects()
12.5.10 - 2026-02-08
Fixed
- #6495: Source map for issue trigger identification is regenerated in process isolation child processes
12.5.9 - 2026-02-05
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
12.5.8 - 2026-01-27
Changed
- To prevent Poisoned Pipeline Execution (PPE) attacks using prepared
.coveragefiles 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
12.5.7 - 2026-01-24
Fixed
- #6362: Manually instantiated test doubles are broken since PHPUnit 11.2
- #6470: Infinite recursion in
Count::getCountOf()for unusal implementations ofIteratororIteratorAggregate
12.5.6 - 2026-01-16
Changed
- Reverted a change that caused a build failure for the PHP project's nightly community job
12.5.5 - 2026-01-15
Changed
PHPUnit\Framework\MockObjectexceptions are now subtypes ofPHPUnit\Exception
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
12.5.4 - 2025-12-15
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()
12.5.3 - 2025-12-11
Changed
- The message emitted when a test method creates a mock object but does not configure any expectations for it has been improved
12.5.2 - 2025-12-08
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
12.5.1 - 2025-12-06
Added
TestCase::getStubBuilder()(analogous toTestCase::getMockBuilder()) for creating (partial) test stubs using a fluent API
12.5.0 - 2025-12-05
Added
- #6376:
--allCLI option to ignore test selection configured in XML configuration file - #6422: Make
<source>element in XML code coverage report optional
Changed
- #6380: Allow
ThrowableinexpectExceptionObject() - A PHPUnit notice is now emitted for test methods that create a mock object but do not configure an expectation for it