Skip to content
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

PHPUnit 10 Shift #72

Merged
merged 6 commits into from
Mar 3, 2024
Merged

PHPUnit 10 Shift #72

merged 6 commits into from
Mar 3, 2024

Conversation

kainxspirits
Copy link
Owner

This pull request contains changes for upgrading to PHPUnit 10 automated by the PHPUnit 10 Shift.

Before merging, you need to:

  • Checkout the shift-111318 branch
  • Review all pull request comments for additional changes
  • Run composer update (if the scripts fail, add --no-scripts)
  • Run your tests suite: vendor/bin/phpunit

If there were changes you felt could have been automated, please reply to the follow-up email with your feedback or on Twitter.

From the [PHPUnit 8 release notes][1], the `TestCase` methods below now declare a `void` return type:

- `setUpBeforeClass()`
- `setUp()`
- `assertPreConditions()`
- `assertPostConditions()`
- `tearDown()`
- `tearDownAfterClass()`
- `onNotSuccessfulTest()`

[1]: https://phpunit.de/announcements/phpunit-8.html
@kainxspirits
Copy link
Owner Author

⚠️ PHPUnit 10 requires PHP version 8.1 or higher. Be sure to verify you met this requirement by running php -v in your test environment.

@kainxspirits
Copy link
Owner Author

⚠️ PHPUnit 10 has made several changes to the configuration file. After running composer update, you may run vendor/bin/phpunit --migrate-configuration to have PHPUnit upgrade your configuration file.

@kainxspirits
Copy link
Owner Author

❌ The setMethods method on the MockBuilder was deprecated in PHPUnit 8 and removed in PHPUnit 10. Instead, you may use onlyMethods to mock methods which exist and addMethods to mock methods which do not exist.

Shift detected calls to setMethods in the following files:

  • tests/Unit/Jobs/PubSubJobTests.php
  • tests/Unit/PubSubQueueTests.php

@kainxspirits
Copy link
Owner Author

ℹ️ PHPUnit has documented using return types for test cases and data providers since PHPUnit 8. In an effort to modernize your test suite, Shift added a return type of void to your test cases and a return type of array to your data providers.

Shift understands developers have different preferences when it comes to type hints. If you do not wish to add return types, you may undo this change by running: git revert 9598cd72

@kainxspirits
Copy link
Owner Author

ℹ️ PHPUnit has documented declaring test classes as final since PHPUnit 8. In an effort to modernize your test suite, Shift has declared your test classes as final.

Shift understands developers have different preferences when it comes to using final. If you do not wish to declare your test classes as final, you may undo this change by running: git revert 48235b26

@kainxspirits
Copy link
Owner Author

⚠️ PHPUnit 10 now requires any base test class to have a TestCase suffix. In addition, this class should be defined as abstract. If you have a custom base test class, you should ensure it meets these new requirements.

@kainxspirits
Copy link
Owner Author

⚗️ This Shift is still being refined. Please report any issues or suggestions to shift@laravelshift.com. Your feedback is what helps improve the experience for everyone.

@kainxspirits kainxspirits merged commit 470ac83 into master Mar 3, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants