Add canonical order queries #114
Draft
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.
🤔 What's changed?
Adds
findAllTestCaseStartedInCanonicalOrder
findAllTestCaseFinishedInCanonicalOrder
⚡️ What's your motivation?
To provide consistent results while executing in parallel, the Cucumber JSON, Teamcity, Pretty, and Rerun formatters all prints results in canonical order. This results in quite some duplication.
The canonical order is for the
TestCase{Started,Finished}
event is the order of their pickles they execute. Ordered by lexical URI and then from top to bottom in the feature file.🏷️ What kind of change is this?
♻️ Anything particular you want feedback on?
I'm not happy with the
InCanonicalOrder
suffix yet. Ideally the method would have aOrderBy
suffix, taking a function that finds a relationship, and a comparator to order on that relationship.I.e.
Then this can be used as:
But this requires cucumber/messages#308 to be implemented so it is possible to make
PickleComparator
nicely without reaching back into query (slow).📋 Checklist: