Closed sbrannen closed 7 years ago
I think I'm still a bit confused about the exact nature of their relationship. The docs say:
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
Which makes me think of Jupiter as some kind of reference implementation. Which makes them live together side by side and if one has new version - its partner has new version as well.
If that's a valid way of thinking about them, maybe it's not that big of a deal. In case JUnit6 is out with its new reference implementation, I'd then create another package - junit6.
If that's a valid way of thinking about them
It's not. 😉
Jupiter is not a reference implementation: it is the new programming and extension model introduced in JUnit 5.
In stark contrast to previous versions of JUnit, with JUnit 5, "JUnit 5" becomes an umbrella project for the other three projects: Platform, Jupiter, and Vintage.
That means that JUnit Jupiter (as a programming model) may very likely exist in JUnit 6, JUnit 7, etc. -- but without changes to packages on JUnit's side.
In other words, if JUnit 6 is released with continued support for JUnit Jupiter, your current package name will be confusing to users... since they would be required to use classes from your junit5
package on JUnit 6.
Make sense?
It's of course up to you how you name your packages; I'm just suggesting to you what we (the JUnit Team) suggest to everyone.
FWIW, I have followed my own advice for Spring 5's testing support with a package named org.springframework.test.context.junit.jupiter
.
Regards,
Sam
For further background on the impetus for the "JUnit Jupiter" naming, please see this issue: https://github.com/junit-team/junit5/issues/286.
Ok, thanks for the help!
You're welcome!
Since your support for JUnit 5 is actually support for the JUnit Jupiter programming model, I highly recommend that you rename the
io.qala.datagen.junit5
package toio.qala.datagen.junit.jupiter
in order to avoid conflicts with future versions of JUnit (e.g., JUnit 6's support for JUnit Jupiter).