This release updates the PHPUnit Polyfills to allow for "writing your tests for PHPUnit 11 and running them all the way back to PHPUnit 6". [*]
Please keep in mind that the PHPUnit Polyfills provide forward-compatibility. This means that features which PHPUnit no longer supports in PHPUnit 11.x, are also no longer supported in the 3.0 release of the PHPUnit Polyfills.
Projects which don't use any of the new or removed functionality in their test suite, can, of course, use the PHPUnit Polyfills 1.x, 2.x and 3.x series side-by-side, like so composer require --dev yoast/phpunit-polyfills:"^1.0 || ^2.0 || ^3.0".
[*]: Note: Releases from the PHPUnit Polyfills 3.x branch will support running tests on PHPUnit 6.4.4 - 9.x and 11.x, but will not allow for running tests on PHPUnit 10 (for reasons explained in #200).In practical terms, the net effect of this is that tests on PHP 8.1 will run on PHPUnit 9 instead of PHPUnit 10. Other than that, there is no impact.
Changelog
Added
Yoast\PHPUnitPolyfills\Polyfills\AssertArrayWithListKeys trait to polyfill the Assert::assertArrayIsEqualToArrayOnlyConsideringListOfKeys(), Assert::assertArrayIsEqualToArrayIgnoringListOfKeys(), Assert::assertArrayIsIdenticalToArrayOnlyConsideringListOfKeys() and Assert::assertArrayIsIdenticalToArrayIgnoringListOfKeys() methods as introduced in PHPUnit 11.0.0. PR #198.
Yoast\PHPUnitPolyfills\Polyfills\ExpectUserDeprecation trait to polyfill the TestCase::expectUserDeprecationMessage() and TestCase::expectUserDeprecationMessageMatches() methods as introduced in PHPUnit 11.0.0. PR #200.
These methods can largely be seen as replacements for the TestCase::expectDeprecationMessage() and TestCase::expectDeprecationMessageMatches() methods which were removed in PHPUnit 10.0, though there are significant differences between the implementation details of the old vs the new methods. Please see the README for full details.
Yoast\PHPUnitPolyfills\Polyfills\AssertObjectNotEquals trait to polyfill the Assert::assertObjectNotEquals() method as introduced in PHPUnit 11.2.0. PR #199.
Changed
Composer: allow for installation of PHPUnit 11.x and removed runtime support for PHPUnit 10.x. PR #196, #200
The assertion failure message for the assertIsList() method has been updated to be in sync with the latest message format as used by PHPUnit 11.3.1+. #195
The visibility of the expectExceptionMessageMatches() method has been changed from public to protected, in line with the same changes as per PHPUnit 11.0. #197
The assertObjectEquals() method polyfill now behaves the same as the PHPUnit native assertion method. PR #192
Previously a comparator method could either be compatible with PHP 5.6+ in combination with PHPUnit < 9.4.0 or with PHP 7.0+, but it wasn't possible to write a comparator method which would work in both situation due to the return type declaration requirement from PHPUnit itself. With the new PHP 7.0 minimum requirement, the return type declaration is now always required and the polyfill and the PHPUnit native method are completely aligned.
The Yoast\PHPUnitPolyfills\Helpers\AssertAttributeHelper trait. PR #194
This "helper" was only intended as a temporary measure to buy people some more time to refactor their tests.
The Yoast\PHPUnitPolyfills\Polyfills\ExpectExceptionObject trait which is no longer needed now support for PHPUnit < 6.4 has been dropped. PR #193
Special thanks go out to @hellofromtonya from consulting on this release!
2.0.2 - 2024-09-07
This is a maintenance release.
Changed
README: updated sub-section about PHPUnit version support with information about the PHPUnit Polyfills 3.x branch. PR #188
README: FAQ updated with info about ability to polyfill the removed expectDeprecation*() methods et al. PR #187, props @hellofromtonya.
README: links to the PHPUnit manual now point explicitly to the PHPUnit 10.x documentation. PR #190
This release updates the PHPUnit Polyfills to allow for "writing your tests for PHPUnit 11 and running them all the way back to PHPUnit 6". [*]
Please keep in mind that the PHPUnit Polyfills provide forward-compatibility. This means that features which PHPUnit no longer supports in PHPUnit 11.x, are also no longer supported in the 3.0 release of the PHPUnit Polyfills.
Projects which don't use any of the new or removed functionality in their test suite, can, of course, use the PHPUnit Polyfills 1.x, 2.x and 3.x series side-by-side, like so composer require --dev yoast/phpunit-polyfills:"^1.0 || ^2.0 || ^3.0".
[*]: Note: Releases from the PHPUnit Polyfills 3.x branch will support running tests on PHPUnit 6.4.4 - 9.x and 11.x, but will not allow for running tests on PHPUnit 10 (for reasons explained in #200).In practical terms, the net effect of this is that tests on PHP 8.1 will run on PHPUnit 9 instead of PHPUnit 10. Other than that, there is no impact.
Changelog
Added
Yoast\PHPUnitPolyfills\Polyfills\AssertArrayWithListKeys trait to polyfill the Assert::assertArrayIsEqualToArrayOnlyConsideringListOfKeys(), Assert::assertArrayIsEqualToArrayIgnoringListOfKeys(), Assert::assertArrayIsIdenticalToArrayOnlyConsideringListOfKeys() and Assert::assertArrayIsIdenticalToArrayIgnoringListOfKeys() methods as introduced in PHPUnit 11.0.0. PR #198.
Yoast\PHPUnitPolyfills\Polyfills\ExpectUserDeprecation trait to polyfill the TestCase::expectUserDeprecationMessage() and TestCase::expectUserDeprecationMessageMatches() methods as introduced in PHPUnit 11.0.0. PR #200.
These methods can largely be seen as replacements for the TestCase::expectDeprecationMessage() and TestCase::expectDeprecationMessageMatches() methods which were removed in PHPUnit 10.0, though there are significant differences between the implementation details of the old vs the new methods. Please see the [README for full details][readme-on-expectuserdeprecation].
Yoast\PHPUnitPolyfills\Polyfills\AssertObjectNotEquals trait to polyfill the Assert::assertObjectNotEquals() method as introduced in PHPUnit 11.2.0. PR #199.
Changed
Composer: allow for installation of PHPUnit 11.x and removed runtime support for PHPUnit 10.x. PR #196, #200
The assertion failure message for the assertIsList() method has been updated to be in sync with the latest message format as used by PHPUnit 11.3.1+. #195
The visibility of the expectExceptionMessageMatches() method has been changed from public to protected, in line with the same changes as per PHPUnit 11.0. #197
The assertObjectEquals() method polyfill now behaves the same as the PHPUnit native assertion method. PR #192
Previously a comparator method could either be compatible with PHP 5.6+ in combination with PHPUnit < 9.4.0 or with PHP 7.0+, but it wasn't possible to write a comparator method which would work in both situation due to the return type declaration requirement from PHPUnit itself. With the new PHP 7.0 minimum requirement, the return type declaration is now always required and the polyfill and the PHPUnit native method are completely aligned.
The Yoast\PHPUnitPolyfills\Helpers\AssertAttributeHelper trait. PR #194.
This "helper" was only intended as a temporary measure to buy people some more time to refactor their tests.
The Yoast\PHPUnitPolyfills\Polyfills\ExpectExceptionObject trait which is no longer needed now support for PHPUnit < 6.4 has been dropped. PR #193.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps yoast/phpunit-polyfills from 2.0.1 to 3.0.0.
Release notes
Sourced from yoast/phpunit-polyfills's releases.
Changelog
Sourced from yoast/phpunit-polyfills's changelog.
... (truncated)
Commits
19e6d5f
Merge pull request #203 from Yoast/feature/release-version-3.0065d1b2
Changelog for the 3.0.0 release and other documentation updatesa053b9d
Merge branch '2.x' into 3.x562f449
Merge pull request #202 from Yoast/feature/2.x-changelog-2.0.22f68d4e
Changelog for the 2.0.2 releasea379052
Merge branch '2.x' into 3.xeebfcfb
Merge branch '1.x' into 2.xe9c8413
Merge pull request #201 from Yoast/feature/1.x-readme-update-for-polyfills-3.x8858643
Changelog for the 1.1.2 releasea4ba261
Merge pull request #200 from Yoast/feature/3.x/new-expectuserdeprecation-poly...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show