sebastianbergmann/phpunit (phpunit/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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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.
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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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.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 @phpunit@phpc.social 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 @phpunit@phpc.social 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 @phpunit@phpc.social 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:
Uh oh!
There was an error while loading. Please reload this page.
This PR contains the following updates:
^3.2->^4.0^9.5->^12.0^6.1->^7.0^6.1->^7.0Release Notes
nette/utils (nette/utils)
v4.0.8: Released version 4.0.8Compare Source
Strings::trim()trims Line Separator and Ideographic Space (#326)DateTime::relativeToSeconds()checks for errorv4.0.7: Released version 4.0.7Compare Source
modify()correctly handle the relative time even if the daylight saving time is changedrelativeToSeconds()for converting relative time string to secondsv4.0.6: Released version 4.0.6Compare Source
FileSystem::resolvePath()#308v4.0.5: Released version 4.0.5Compare Source
Strings::matchAll(): added option 'lazy'Arrays::mapWithKeys()&Iterables::mapWithKeys()Iterables::memoize()&toIterator()v4.0.4: Released version 4.0.4Compare Source
IterablesArrays::firstKey(),lastKey()Arrays::filter()Arrays::first()&last(): added parameter $elseArrays::first()&last(): added parameter $predicate #305Image::getSupportedTypes()Strings::trim()trims unicode spaces and ZWSP (#304)v4.0.3: Released version 4.0.3Compare Source
Image::rgb()Image::rectangleWH(),filledRectangleWH(),calculateTextBox()v4.0.2: Released version 4.0.2Compare Source
Strings::length()uses mbstring, iconv and then utf8_decode #299getType()replaced withisDir()/isFile()some(),every()andmap()(#298)v4.0.1: Released version 4.0.1Compare Source
Image::isTypeSupported()collect()returns listCallback::unwrap()returns correct class name for private methodsv4.0.0: Released version 4.0.0 🥳Compare Source
new methods:
new parameters:
removed
sebastianbergmann/phpunit (phpunit/phpunit)
v12.4.1: PHPUnit 12.4.1Compare Source
Fixed
--filterformat used by PhpStorm stopped workingDataProviderMethodCalledevent value objectLearn how to install or update PHPUnit 12.4 in the documentation.
Keep up to date with PHPUnit:
v12.4.0: PHPUnit 12.4.0Compare Source
Added
#[IgnoreDeprecations]attributeDeprecated
#[RunClassInSeparateProcess]attributeLearn how to install or update PHPUnit 12.4 in the documentation.
Keep up to date with PHPUnit:
v12.3.15: PHPUnit 12.3.15Compare Source
Fixed
failOnPhpunitWarning="false"has no effectLearn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.14: PHPUnit 12.3.14Compare Source
phpunit.pharrebuilt with updated dependenciesLearn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.13: PHPUnit 12.3.13Compare Source
phpunit.pharrebuilt with updated dependenciesLearn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.12: PHPUnit 12.3.12Compare Source
phpunit.pharrebuilt with updated dependenciesLearn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.11: PHPUnit 12.3.11Compare Source
Changed
__sleep()and__wakeup()from test double code generation on PHP >= 8.5Learn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.10: PHPUnit 12.3.10Compare Source
Changed
E_DEPRECATEDissues when building the test suiteLearn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.9: PHPUnit 12.3.9Compare Source
Changed
__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:
v12.3.8: PHPUnit 12.3.8Compare Source
Fixed
Learn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.7: PHPUnit 12.3.7Compare 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:
v12.3.6Compare Source
v12.3.5: PHPUnit 12.3.5Compare Source
Changed
error_reporting=E_ALLfor--check-php-configurationFixed
expectUserDeprecationMessage*()fails when test is run in separate processLearn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.4: PHPUnit 12.3.4Compare Source
Changed
--check-php-configurationFixed
ini_set('error_log')sets filepath outsideopen_basedirLearn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.3: PHPUnit 12.3.3Compare Source
Fixed
#[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:
v12.3.2: PHPUnit 12.3.2Compare Source
Changed
testSplObjectStoragemethods that will be deprecated in PHP 8.5Learn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.1: PHPUnit 12.3.1Compare Source
Added
--check-php-configurationCLI option for checking whether PHP is configured for testingChanged
#[IgnorePhpunitDeprecations]is now considered for test runner deprecations (where applicable)Fixed
#[TestWith]or#[TestWithJson]attributes are now properly reportedDataProviderMethodFinishedevent is now also emitted when the provided data set has an invalid keyLearn how to install or update PHPUnit 12.3 in the documentation.
Keep up to date with PHPUnit:
v12.3.0: PHPUnit 12.3.0Compare Source
Added
#[IgnorePHPUnitWarnings]attribute for ignoring PHPUnit warnings#[TestDoxFormatter]and#[TestDoxFormatterExternal]attributes for configuring a custom TestDox formatter for tests that use data from data providersTestRunner\ChildProcessErroredeventConfiguration::includeTestSuites()andConfiguration::excludeTestSuites()Changed
@<data-set-name>format (compatible with--filterCLI option) in defect messages#[DataProvider*]attributes are mixed with#[TestWith*]attributesDeprecated
Configuration::includeTestSuite(), useConfiguration::includeTestSuites()insteadConfiguration::excludeTestSuite(), useConfiguration::excludeTestSuites()instead#[CoversNothing]on a test methodHow to install or update PHPUnit
v12.2.9: PHPUnit 12.2.9Compare Source
Fixed
fileattribute of<testClass>node of XML test list can be wrongHow to install or update PHPUnit
v12.2.8: PHPUnit 12.2.8Compare Source
Fixed
How to install or update PHPUnit
v12.2.7: PHPUnit 12.2.7Compare Source
Fixed
defects,randomconfiguration is supported by implementation, but it is not allowed by the XML configuration file schematestprefixHow to install or update PHPUnit
v12.2.6: PHPUnit 12.2.6Compare Source
Fixed
@no-named-argumentsleads to static analysis errors for variadic argumentsHow to install or update PHPUnit
v12.2.5: PHPUnit 12.2.5Compare Source
Fixed
<testsuite>element is missing requirednameattributeHow to install or update PHPUnit
v12.2.4: PHPUnit 12.2.4Compare Source
Changed
--include-git-informationCLI option or theincludeGitInformationattribute in the XML configuration fileHow to install or update PHPUnit
v12.2.3: PHPUnit 12.2.3Compare Source
Added
failOnPhpunitWarningattribute on the<phpunit>element of the XML configuration file and--fail-on-phpunit-warningCLI option for controlling whether PHPUnit should fail on PHPUnit warnings (default:true)--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-warningCLI options--do-not-report-useless-testsCLI option as a replacement for--dont-report-useless-testsDeprecated
--dont-report-useless-testsCLI option (use--do-not-report-useless-testsinstead)Fixed
ExpectationFailedExceptionHow to install or update PHPUnit
v12.2.2: PHPUnit 12.2.2Compare Source
Fixed
shortenArraysForExportThresholdXML configuration setting has no effect on all arrays exported for event-related value objectsHow to install or update PHPUnit
v12.2.1: PHPUnit 12.2.1Compare Source
Fixed
How to install or update PHPUnit
v12.2.0: PHPUnit 12.2.0Compare 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-otrCLI 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-cloverCLI 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-telemetryCLI option that can be used together with--debugto print debugging information that includes telemetry informationTestCase::provideAdditionalInformation()method can now be used to emit aTest\AdditionalInformationProvidedeventTest\AfterLastTestMethodFailed,Test\AfterTestMethodFailed,Test\BeforeFirstTestMethodFailed,Test\BeforeTestMethodFailed,Test\PostConditionFailed,Test\PreConditionFailedevents are now emitted instead ofTest\AfterLastTestMethodErrored,Test\AfterTestMethodErrored,Test\BeforeFirstTestMethodErrored,Test\BeforeTestMethodErrored,Test\PostConditionErrored,Test\PreConditionErroredwhen theThrowableextendsAssertionFailedErrorto distinguish between errors and failures triggered in hook methodsTest\PreparationErroredevent is now emitted instead ofTest\PreparationFailedwhen theThrowabledoes not extendAssertionFailedErrorto distinguish between errors and failures triggered during test preparationTest\PreparationFailed::throwable()Changed
#[CoversNothing]and#[Covers*](or#[Uses*]) are used on a test class#[Covers*](or#[Uses*]) attribute is used multiple times on a test class#[Covers*]and#[Uses*]attributessetUp(), for example has a#[Test]attribute#[Small],#[Medium], or#[Large]is used on a test classHow to install or update PHPUnit
v12.1.6: PHPUnit 12.1.6Compare Source
Changed
createStubForIntersectionOfInterfaces()is called with a classHow to install or update PHPUnit
v12.1.5: PHPUnit 12.1.5Compare Source
Fixed
assertEmpty()andassertNotEmpty()use overly restrictivephpstan-assert emptydirectivesHow to install or update PHPUnit
v12.1.4: PHPUnit 12.1.4Compare Source
Added
displayDetailsOnAllIssuesattribute on the<phpunit>element of the XML configuration file and--display-all-issuesCLI option for controlling whether PHPUnit should display details on all issues that are triggered (default:false)failOnAllIssuesattribute on the<phpunit>element of the XML configuration file and--fail-on-all-issuesCLI option for controlling whether PHPUnit should fail on all issues that are triggered (default:false)Changed
E_STRICTconstantFixed
%aand%Amatches are not ignored from diff whenEXPECTFfailsHow to install or update PHPUnit
v12.1.3: PHPUnit 12.1.3Compare Source
Changed
memory_get_peak_usage()is now reset immediately before theTest\Preparedevent is emitted usingmemory_reset_peak_usage()so that (memory usage atTest\Finished- memory usage atTest\Prepared) is a better approximation of the memory usage of the testTelemetry\Infonow uses peak memory usage instead of memory usage (this affects--log-events-verbose-text)Fixed
error_log()is not displayed when test failsHow to install or update PHPUnit
v12.1.2: PHPUnit 12.1.2Compare Source
Fixed
How to install or update PHPUnit
v12.1.1: PHPUnit 12.1.1Compare Source
Fixed
willReturnMap()fails with nullable parameters when their default isnulland no argument is passed for themHow to install or update PHPUnit
v12.1.0: PHPUnit 12.1.0Compare Source
Added
expectErrorLog()for expectingerror_log()output#[WithEnvironmentVariable]for setting an environment variable for the duration of a testAfterTestMethodCalled,AfterTestMethodErrored,AfterTestMethodFinished,BeforeTestMethodCalled,BeforeTestMethodErrored,BeforeTestMethodFinished,PostConditionCalled,PostConditionErrored,PostConditionFinished,PreConditionCalled,PreConditionErrored, andPreConditionFinishedevent value objects now havetest()method that returns a value object representing the test method for which the hook method was calledChanged
phpunit --warm-coverage-cachebefore running tests.Deprecated
testClassName()method on theAfterTestMethodCalled,AfterTestMethodErrored,AfterTestMethodFinished,BeforeTestMethodCalled,BeforeTestMethodErrored,BeforeTestMethodFinished,PostConditionCalled,PostConditionErrored,PostConditionFinished,PreConditionCalled,PreConditionErrored, andPreConditionFinishedevent value objects (usetest()->className()instead)How to install or update PHPUnit
v12.0.10: PHPUnit 12.0.10Compare Source
Changed
How to install or update PHPUnit
v12.0.9: PHPUnit 12.0.9Compare Source
Fixed
with()on test doubles yields error with static analyzerHow to install or update PHPUnit
v12.0.8: PHPUnit 12.0.8Compare Source
Changed
How to install or update PHPUnit
v12.0.7: PHPUnit 12.0.7Compare Source
Fixed
How to install or update PHPUnit
v12.0.6: PHPUnit 12.0.6Compare Source
Fixed
$expectedand$actualare mixed up in failure description whenassertJsonFileEqualsJsonFile()failsHow to install or update PHPUnit
v12.0.5: PHPUnit 12.0.5Compare Source
Fixed
How to install or update PHPUnit
v12.0.4: PHPUnit 12.0.4Compare Source
Fixed
How to install or update PHPUnit
v12.0.3: PHPUnit 12.0.3Compare Source
Changed
TestCase::__construct()is now declaredfinal(it was annotated with@finalbefore and the announced changed from@finaltofinalfor PHPUnit 12 was forgotten)Fixed
includeUncoveredFilesconfiguration optionTest\PreparationFailedevent is now emitted in addition to aTest\Erroredevent when an unexpected exception is triggered in a before-test methodTest\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 methodTestSuite\Finishedevent is now emitted when a before-first-test method errorsHow to install or update PHPUnit
v12.0.2: PHPUnit 12.0.2Compare Source
Changed
How to install or update PHPUnit
v12.0.1: PHPUnit 12.0.1Compare Source
Fixed
Assert::isType(),assertContainsOnly(),assertNotContainsOnly(), andcontainsOnly()How to install or update PHPUnit
v12.0.0: PHPUnit 12.0.0Compare Source
Added
#[CoversClassesThatExtendClass]and#[UsesClassesThatExtendClass]#[CoversClassesThatImplementInterface]and#[UsesClassesThatImplementInterface]#[CoversNamespace]and#[UsesNamespace]#[RequiresEnvironmentVariable]Changed
shortenArraysForExportThresholdis now10(limit export of arrays to 10 levels) instead of0(do not limit export of arrays)Deprecated
Assert::isType()(was soft-deprecated in PHPUnit 11.5)assertContainsOnly()(was soft-deprecated in PHPUnit 11.5)assertNotContainsOnly()(was soft-deprecated in PHPUnit 11.5)containsOnly()(was soft-deprecated in PHPUnit 11.5)Removed
TestCase::iniSet()TestCase::setLocale()TestCase::createTestProxy()TestCase::getMockForAbstractClass()TestCase::getMockFromWsdl()TestCase::getMockForTrait()TestCase::getObjectForTrait()MockBuilder::enableAutoload()andMockBuilder::disableAutoload()MockBuilder::allowMockingUnknownTypes()andMockBuilder::disallowMockingUnknownTypes()MockBuilder::enableProxyingToOriginalMethods(),MockBuilder::disableProxyingToOriginalMethods(), andMockBuilder::setProxyTarget()MockBuilder::getMockForTrait()MockBuilder::getMockForAbstractClass()MockBuilder::enableArgumentCloning()andMockBuilder::disableArgumentCloning()MockBuilder::addMethods()methodTestCasemethods for creating return stub configuration objectsassertStringNotMatchesFormat()andassertStringNotMatchesFormatFile()expects()on test stubs--group,--exclude-group,--covers,--uses, and--test-suffixCLI optionsrestrictDeprecationsattribute on the<source>element of the XML configuration file#[CoversClass]and#[UsesClass]attributesHow to install or update PHPUnit
v11.5.42: PHPUnit 11.5.42Compare Source
Fixed
failOnPhpunitWarning="false"has no effectLearn how to install or update PHPUnit 11.5 in the documentation.
Keep up to date with PHPUnit:
v11.5.41: PHPUnit 11.5.41Compare Source
phpunit.pharrebuilt with updated dependenciesLearn how to install or update PHPUnit 11.5 in the documentation.
Keep up to date with PHPUnit:
v11.5.40: PHPUnit 11.5.40Compare Source
phpunit.pharrebuilt with updated dependenciesLearn how to install or update PHPUnit 11.5 in the documentation.
Keep up to date with PHPUnit:
v11.5.39: PHPUnit 11.5.39Compare Source
Changed
__sleep()and__wakeup()from test double code generation on PHP >= 8.5Learn how to install or update PHPUnit 11.5 in the documentation.
Keep up to date with PHPUnit:
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.