-
Notifications
You must be signed in to change notification settings - Fork 393
Shard Tests #2809
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
Shard Tests #2809
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #2809 +/- ##
=========================================
Coverage 61.77% 61.77%
Complexity 2767 2767
=========================================
Files 214 214
Lines 16931 16931
Branches 2453 2453
=========================================
Hits 10459 10459
Misses 5306 5306
Partials 1166 1166
🚀 New features to boost your workflow:
|
.github/test-shards/README.md
Outdated
|
|
||
| Each confiruration file defines targets using the `class` keyword. To ensure all tests are run, each config has a "remaining" shard that **only** uses the `notClass` keyword. New test classes will automatically be included in the "remaining" shard. | ||
|
|
||
| However, it is very important that classes added to shards are also added to the "remaining" shard to prevent them from running twice. Likewise it is important that classes removed from shards are also removed from the "remaining" shard so they are not skipped. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will write a trust story to ensure this is maintained. It shouldn't be too hard to write a bash script that ensure the number of targets in the "remaining" shard exactly equals the number of targets in all other shards combined.
But I would like to see the system be proven to be useful before adding additional work.
Edit: Implemented. With name matching, to prevent typos and make fixing mistakes easier.
wmathurin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This should significantly reduce the time it takes for our tests to run since all shards run in parallel. I have done my best to anticipate any possible collisions that could cause test failures. Each lib has a "remaining" shard with only
notClasstargets (from the other shards) so it will run everything not in another shard. No work is required when adding new tests.