-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Resolver based discovery mechanism #134
Closed
Closed
Conversation
This file contains 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
Current coverage is
|
be0f866
to
a132740
Compare
(needs to be restricted in the next step)
- trigger (EngineResolver) - termination (TestResolverRegistry)
- changed JUnit5TestEngine to make use of the resolver registry - migrated all tests to reflect the new unique id structure
edc4ab8
to
71b295d
Compare
Merged
Team decision:
|
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 pull request contains all changes that are required to switch to another discovery process. The new process is built upon resolvers and follows a clear structure for the unique id. It encapsulates all logic that is required to create and map a
TestDescriptor
with an guaranteed unique id within theTestResolver
.Advantages over the current discovery process:
TestDescriptors
within the test plan tree. The new approach allows to add children to a given parent any time during the test discovery phase. In this way, extension provider could also write their ownTestResolvers
that can parse arbitrary syntax trees (e.g. lambda, XML files, etc.)TestResolver
simplifies the dependencies: ATestResolver
has no dependency on otherTestResolver
s. It only knows about theTestDescriptor
that it want to contribute new children to, and knows how to describe them in form of aDiscoverySelector
. In this way, discovery can be done top-down (recursively) or bottom-up (exact match only).TestResolver
is responsible for creating the executableTestDescriptors
and to resolve theUniqueId
for it. It needs not to know about any otherTestResolver
in the system, but only about whichTestDescriptor
it wants to add children to.UniqueId
s:TestResolver
s are responsible for creating and resolvingUniqueId
s. No other module will need to contain rules for modifying or changing anUniqueId
.DiscoveryFilter
: EachTestResolver
might provide its ownDiscoveryFilters
that it will apply during discovery. This gains performance, since aDiscoveryFilter
is applied upfront by itsTestResolver
and noTestDescriptor
needs to be generated, at all.DiscoveryFilter
might be understood as 'Tuning or Configuration parameters' for theTestResolvers
Team decision: Everybody should review this pull request until the next team Skype call on Tuesday. Then we will decide whether or not we will switch to the new discovery process.