-
-
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
Remove separate artifact for parameterized tests #858
Comments
|
Yes, If the rationale is indeed to keep out the dependency on Univocity CSV parsing, then my proposal is this:
This creates no cyclic dependencies. Some follow-up thoughts:
The decoupling mechanism currently chosen is implicit, manual, and not overly user-friendly - I wonder whether it should get more explicit support because it will be a recurring concern within JUnit Jupiter. |
I have to admit I like the idea of parameterized tests being "built in". |
Just as a question: Wouldnt it be great if junit-jupiter-params was just a plugin that can be switched on when needed and is not included if not? 😃 I even was thinking of having it as a separate engine as we were starting, but it was just a thought... |
When you say "plugin", do you perhaps mean "extension"? If not, what are you saying? 😇 |
Well, as a separate artifact it can be added to a project's dependencies when needed. Moreover, the annotation already serves as a switch to enable it for a single method. So, I'd say we're good in this regard. |
My question was more of a rethorical one... 😈
Yes, we call them "extension" in Jupiter. But I was more about speaking the overall idea/concept of having extensible units, that add functionality and features to the JUnit Platform (or to Jupiter specifically) and, therefore, calling it a "plugin", whereas it is not essentially necessary to make use of our extension mechanism in Jupiter (could also be to provide another
I don't agree. I see a lot of value in this extensibility, allowing people to select that kind of functionality they want to have in their project. Especially for bigger features like this, we don't want to handle flags and options for turning on and off throughout the code base. The separation of the module is of much value. So 👍 for Marcs comment and a vote to close this issue by leaving the modules "as-is". And we should try to stick with this route for the future, e.g. for introducing test scenarios, etc. 😃 |
Team decision: Keep parameterized tests in separate artifact for the time being. |
Parameterized tests require a dependency on
junit-jupiter-params
, which is surprising and will surely be seen as superfluous by many users. Doing some research I only found #728, which references a team call but gives no background. I assume there are good reasons for that decision (in which case this issue might force them into the light) but until then I will make a suggestion based on my ignorance. 😉I thought the reason may be the dependency on the CSV parser and JUnit's goal to not ship with too many dependencies. If that is indeed the reason, I suggest splitting just those sources into a subproject
junit-jupiter-csv-params
(or whatever) and move the other types intojunit-jupiter-api
. That would keep JUnit's dependencies small while giving a lot of functionality out of the box. Having to include a separate artifact for CSV values (very extension-y) makes much more sense than including one for@ParameterizedTest
(very core feature-y).The text was updated successfully, but these errors were encountered: