Skip to content

[PHPUnitBridge] Cross compatibility between PHPUnit 5 and 6 #21221

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from

Conversation

Jean85
Copy link
Contributor

@Jean85 Jean85 commented Jan 9, 2017

Q A
Branch? master
Bug fix? yes
New feature? no
BC breaks? no
Deprecations? no
Tests pass? yes
Fixed tickets #21125
License MIT

This is a new approach after I failed with #21158. I used a mixed approach of extending classes and using the original ones, since I need to avoid breaking BC in every possible scenario.

I copied the compat classes from the previous PR, so I'm following all the review request done there.

@Jean85
Copy link
Contributor Author

Jean85 commented Jan 11, 2017

The build is failing due to warnings about the change of signatures:

Declaration of Symfony\Bridge\PhpUnit\SymfonyTestsListener::addSkippedTest($test, Exception $e, $time) must be compatible with PHPUnit_Framework_TestListener::addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)

How can I overcome this?

@peterrehm
Copy link
Contributor

@Jean85 I tried with multiple classes as you can see here: #21668

@nicolas-grekas
Copy link
Member

Closing on favor of #21694

nicolas-grekas added a commit that referenced this pull request Feb 21, 2017
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Bridge/PhpUnit] Add PHPUnit 6 support

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #21125
| License       | MIT
| Doc PR        | -

This PR makes our phpunit bridge compatible with all namespaced versions of phpunit, from 4.8.35 to 6.
It takes another approach than #21668 and #21221, thus replaces them.
Tested locally : tests pass when using phpunit 5.7, and fails with v6.0 because our own test suite is not yet compatible with it - but at least it runs nice.
If this were handled as usual Symfony component, we would consider some changes to be BC breaks. But in this specific case - a phpunit bridge - it makes no sense to me to apply the bc policy here. I added `@final` and `@internal` annotations to make this clearer.

Commits
-------

9e0745c [Bridge/PhpUnit] Add PHPUnit 6 support
@Jean85 Jean85 deleted the phpunit_6_bridge_compat_redo branch February 21, 2017 14:07
@nicolas-grekas nicolas-grekas modified the milestones: 3.x, 3.3 Mar 24, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants