Speed up JUnit 5 coverage by supporting single phase test discovery/execution #1040
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.
Unlike JUnit 3 & 4, JUnit 5 does not seperate the concept of discovering
and executing test, running them as they are found. This resulted in
very efficient coverage calculation for pitest. Each JUnit 5 tests was
executed twice.
This change updates pitest to support both models (seperate discovery,
and single stage) by adding a listener to the TestUnitFinder interface
to detect test execution during discovery.
This is a breaking change to the TestUnitFinder api, all test plugins must be updated.
It would be difficult to properly support the little used
dependencyDistance
parameter with these changes, so it has been removed.