Re: Bumping junit jupiter to version 6

Paul King <[email protected]>
Newsgroups gmane.comp.lang.groovy.devel
Message-ID <CAMbkE7RSv8=XoMK73VwnwgK-K0LVErms7LixvffJOvyZFEgoZQ@mail.gmail.com>
Okay, I'll proceed with the previously discussed proposal for alpha-1. If
creating junit6 turns out to be the wrong choice, I think we can adjust
course before we get to beta-1.

On Sun, Mar 29, 2026 at 7:29 AM Paul King <[email protected]> wrote:

> Hi folks,
>
> In the following PR, I bumped our own internal testing framework to JUnit
> 6:
>
> https://github.com/apache/groovy/pull/2412
>
> Bumping a dependency is typically a business-as-usual activity that
> wouldn't need to be mentioned in the mailing list. But there was a
> design choice that is worth discussing.
>
>  Our usage of JUnit 5 was two-fold. We use it for internal testing. We
> still have tests written for JUnit 3 & 4, but Eric has been doing some
> nice work migrating more of our tests to JUnit 5. Migrating to JUnit
> 6, after a few small wrinkles, went smoothly. We should note that the
> JUnit 3 & 4 runners are now deprecated in JUnit 6. So for some future
> Groovy version, we may want to deprecate support for JUnit 3/4 which
> would include things likeGroovyTestCase and so forth. I don't propose
> we do that just yet but we should keep an eye on jupiter evolution.
>
> The other usage of JUnit5 is in our runner in the groovy-test-junit5
> module. The runner lets you run JUnit 5 scripts standalone in the
> groovyConsole or on the command-line. There is a JUnit platform
> console launcher these days but it isn't as nice for Groovy
> developers. So I propose we keep the runner.
>
> The way we package groovy-test-junit5 is worth thinking about. As well
> as the runner, we reference all the needed jupiter implementation jars
> as dependencies. So users can simply depend on that module and get
> everything they need. Now, it seems a little strange to reference
> groovy-test-junit5 and bring in jupiter version 6. So, we could rename
> that module to junit6 or jupiter, keeping the old one around as
> deprecated for backwards compatibility.
>
> I initially thought renaming to groovy-test-jupiter would be the best
> approach since that might save us from doing more work when (and if)
> there is a JUnit 7. But, after going through the implementation steps
> involved, I now think groovy-test-junit6 would be best. That lets our
> users just jump from JUnit 5 to 6 by changing one Maven coordinate. I
> can also see a few features we can add that would enhance jupiter but
> they depend on specific jupiter versions, so it would make sense to
> place them in the respective version modules. There would be some
> duplication in the runner code between junit5 and junit6 modules but
> its only small and I propose we live with which will make eventually
> deprecating the junit5 stuff easier.
>
> So to summarise, I propose a `groovy-test-junit6` module to live
> alongside the `groovy-test-junit5` module but you'd only ever want one
> of them. The `groovy-test-junit5` module will become an optional
> module. I.e., not included in groovy-all and not included in the
> standard distribution. That is what is in the PR, so feel free to try
> it out.
>
> Any thoughts?
>
> Thanks, Paul.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.