[PhpUnitBridge] Inject polyfills in TestCase#32882
Merged
nicolas-grekas merged 1 commit intosymfony:4.4from Aug 3, 2019
Merged
[PhpUnitBridge] Inject polyfills in TestCase#32882nicolas-grekas merged 1 commit intosymfony:4.4from
nicolas-grekas merged 1 commit intosymfony:4.4from
Conversation
c0fbe1e to
ff8253e
Compare
c8fc335 to
07f79de
Compare
07f79de to
298553e
Compare
jderusse
commented
Aug 2, 2019
588b4eb to
1874dc2
Compare
jderusse
commented
Aug 2, 2019
1874dc2 to
ad183cd
Compare
1 task
ad183cd to
e445958
Compare
e445958 to
ab61e52
Compare
nicolas-grekas
added a commit
that referenced
this pull request
Aug 3, 2019
…las-grekas) This PR was merged into the 3.4 branch. Discussion ---------- [PhpUnitBridge] Use PHPUnit75Migration in CS fixer | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes (not yet) need #32882, #32886, #32893 | Fixed tickets | #32844 | License | MIT | Doc PR | NA Bump php-cs-fixer rule to PHPUnit75Migration:risky which add - php_unit_dedicate_assert_internal_type - php_unit_expectation - php_unit_mock - php_unit_no_expectation_annotation which are (or will be) all polyfillyed - [x] need to polyfill `createPartialMock` Commits ------- 9fb1c42 Adopt `@PHPUnit55Migration:risky` rule of php-cs-fixer
203c4f6 to
f15d762
Compare
f15d762 to
75d60f4
Compare
jderusse
commented
Aug 3, 2019
| @@ -11,25 +11,7 @@ | |||
|
|
|||
| namespace Symfony\Bridge\PhpUnit; | |||
Member
Author
There was a problem hiding this comment.
This file is temporary and will be remove before merging
75d60f4 to
019d128
Compare
Member
Author
|
this pr is RFR. test on #32889 are green. |
b7d9d95 to
d28843d
Compare
Member
nicolas-grekas
left a comment
There was a problem hiding this comment.
Really really cool :)
Just some nit picking.
23 tasks
d28843d to
b5516d5
Compare
b5516d5 to
016bd8d
Compare
Member
|
Thank you @jderusse. |
nicolas-grekas
added a commit
that referenced
this pull request
Aug 3, 2019
…jderusse) This PR was merged into the 4.4 branch. Discussion ---------- [PhpUnitBridge] Inject ForwardCompatibiliy in TestCase | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | not yet | Fixed tickets | #32844 | License | MIT | Doc PR | NA This PR replace the previous trait `ForwardCompatTestTrait` by injecting forward compatibility code in phpunit itself which allow to use the polyfill methods in tests without changing the code. when using `simple_phpunit` the env variable `$PHPUNIT_REMOVE_RETURN_TYPEHINT=1` (default 0) removes the `: void` typehint in public and protected methods (allow to use 7.4 8 in 3.4 branch) note: once merged, all tests have to be fixed. see #32889 Commits ------- 016bd8d Inject ForwardCompatibiliy in TestCase
nicolas-grekas
added a commit
that referenced
this pull request
Aug 3, 2019
This PR was merged into the 3.4 branch. Discussion ---------- [PhpUnitBridge] Remove use of ForwardCompatTrait | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #32844 | License | MIT | Doc PR | NA With #32882 the ForwardCompatibilityTrait is injected in TestCase which now act as a true polyfill Commits ------- ac6242f Remove use of ForwardCompatTrait
fabpot
added a commit
that referenced
this pull request
Aug 5, 2019
…newest PHPUnit features (nicolas-grekas) This PR was merged into the 4.4 branch. Discussion ---------- [PhpUnitBridge] make the bridge act as a polyfill for newest PHPUnit features | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - It's been quite a tunnel these days with @jderusse but here we are: the phpunit-bridge is now a fully working polyfill for newest PHPUnit features. All related PRs have been merged as "minor" but they are now ready for prime time, hence this PR that I'd like to be merged as "feature", to make it part of the changelog of Symfony 4.4. As of version 4.4, the `simple-phpunit` script will run an augmented version of PHPUnit, that will provide the newest assertions of PHPUnit 8 even if you happen to be running PHPUnit 4.8+ (because you still need to test on PHP 5.5, as Symfony does.) The bridge currently provides polyfills for the methods that are needed to make our tests pass on PHP 7.4 with no deprecations: - #32878 #32907 `assertString(Not)ContainsString(IgnoringCase)`, `assertEqualsWithDelta` and `assert(Not)ContainsEquals` - #32875 `expectException*`, which replace `@expectedException*` annotations - #32846 `assertIs*`, which replace `assertInternalType` - #32865 `create(Partial)Mock` - #32931 `assert(File|Directory)(Not)(Exists|IsReadable|IsWritable)` More polyfills might be added if you need them. PRs welcome as usual. As of #32882, when the `SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT` is set to `1`, `simple-phpunit` will also [patch](https://github.com/symfony/symfony/blob/884669b83b131df8c3c41ad6517abe8cff7903b0/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php#L149) the source of PHPUnit 8 to remove the `void` return-type on `setUp*`/`tearDown*`. This is required when the same codebase must be tested against PHP 5.5 up to 7.4+ (as does our branch 3.4). For codebases that don't want or can't run their tests with `simple-phpunit` but want to run their PHP 5.5 tests with PHPUnit 8, the bridge provides a new `SetUpTearDownTrait` that allows a [smooth transition](https://github.com/php-cache/integration-tests/blob/c59a4d2dec1e462e5f5646e5fe102f403d6b8903/src/CachePoolTest.php#L21) to it. Along the path, we also created a new tool for our CI: it's now possible to submit a new polyfill on the current feature-branch (4.4 these days) and test it with a PR on another branch. See #32887 for the patch. All these new features have been added to achieve PHP 7.4 support on branch 3.4. There are still many deprecations that need to be fixed, all tracked in #32844. It should be a pretty nice list of "good first issues". Thank you @luispabon, @tweichart, @Alexander1000 BTW. A big specific thank you to @jderusse for the help! Let's rock PHP 7.4, can't wait for your PRs, see you on #32844 :) Commits ------- 271211b [PhpUnitBridge] make the bridge act as a polyfill for newest PHPUnit features
hultberg
pushed a commit
to hultberg/symfony
that referenced
this pull request
Sep 17, 2021
…(jderusse) This PR was merged into the 3.4 branch. Discussion ---------- [PhpUnitBridge] Remove use of ForwardCompatTrait | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony#32844 | License | MIT | Doc PR | NA With symfony#32882 the ForwardCompatibilityTrait is injected in TestCase which now act as a true polyfill Commits ------- ac6242f Remove use of ForwardCompatTrait
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 replace the previous trait
ForwardCompatTestTraitby injecting forward compatibility code in phpunit itself which allow to use the polyfill methods in tests without changing the code.when using
simple_phpunitthe env variable$PHPUNIT_REMOVE_RETURN_TYPEHINT=1(default 0) removes the: voidtypehint in public and protected methods (allow to use 7.4 8 in 3.4 branch)note: once merged, all tests have to be fixed. see #32889