-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
Refactoring Suite, Parameterized and class runners to allow reuse in custom Runners #1348
Open
PeterWippermann
wants to merge
13
commits into
junit-team:main
Choose a base branch
from
PeterWippermann:refactoring_suite
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
06bbb4e
Converted useful object methods to class methods for later reuse
PeterWippermann 1f04d9d
extracted new helper methods; moved helper methods from nested
PeterWippermann d4e9cf4
extracted getNamePatternForParameters()
PeterWippermann d3d5f9c
renamed getAnnotatedClasses() to getSuiteClasses() and made it public
PeterWippermann 59bd461
minor improvement of variable name
60ee694
Extracted further methods as static for reuse in other Runners
0e9d515
Methods for TestRules are now publicly available
6964310
Minor change to fix "@param name not found" error on Travis CI
0f4704a
methods related to annotation processing are now protected inst. methods
ff3d035
Introduced ParameterizedTestClass to encapsulate annotation processing
43ab75e
withClassStatements() combines @BeforeClass, @AfterClass and @ClassRule
dca431f
converted line delimiters to unix
PeterWippermann 0c1d4d5
converted line delimiters to unix
PeterWippermann File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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.
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.
Curious why you want to call these directly vs. calling
classBlock()
. If you cannot useclassBlock()
then perhaps instead of making these threeprotected
we should extract oneprotected
method that calls all three so 1) your runner isn't hard-coding the order and 2) we can add more calls in the future (exwithClassFixtures()
). Perhaps call the new methodwithClassStatements()
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 like your proposal to introduce
withClassStatements()
. I also had something like this in mind before, but didn't brought it to an end. I will incorporate it now.I'd like to propose to leave
withBeforeClasses(...)
(and the others) protected anyway. But the documentation should encourage to usewithClassStatements()
.I can't call
ParentRunner.classBlock(...)
in my customRunner
because between invoking the children and applying the class statements, I'd like to apply@TestRule
s. ParentRunner doesn't support these.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.
@PeterWippermann I don't understand what you mean by "I can't call ParentRunner.classBlock(...) in my custom Runner because between invoking the children and applying the class statements, I'd like to apply @testrules". The method
withClassRules()
applies all of the rules annotated with@ClassRule
. You shouldn't invoke rules annotated withTestRule
inParentRunner
because there is no instance of the class.