As mentioned in JUnit5 documentation, it is possible to integrate JUnit4 with JUnit5:
____
JUnit provides a gentle migration path via a JUnit Vintage test engine which allows existing tests based on JUnit 3 and JUnit 4 to be executed using the JUnit Platform infrastructure. Since all classes and annotations specific to JUnit Jupiter reside under a new org.junit.jupiter base package, having both JUnit 4 and JUnit Jupiter in the classpath does not lead to any conflicts.
____
However, maintaining both systems is a temporary solution. This rule flags all the annotations from JUnit4 which would need to be migrated to JUnit5, hence helping migration of a project.
Here is the list of JUnit4 annotations tracked by the rule, with their corresponding annotations in JUnit5:
Note that the following annotations might requires some rework of the tests to have JUnit5 equivalent behavior. A simple replacement of the annotation won't work immediately:
=== on 4 May 2020, 11:16:51 Johann Beleites wrote:
Do we want to flag this as an issue whenever we find a JUnit4 annotation? As in, if a developer simply still uses JUnit4 and hasn't upgraded to 5 (yet), do we flag the annotations 'because you shouldn't be using 4 anymore' or do we want to permit the usage of 4 as long as no 5 has been introduced yet?
=== on 4 May 2020, 11:39:39 Michael Gumowski wrote:
The idea here is that as soon a project wants to migrate from JUnit4 to JUnit5, they will enable this rule (it is not enabled by default). The rule will then flag with an issue (severity bein "info") any use of JUnit4 annotations, to have it changed.
So, to me there is no need to think about the automatic enabling process, deciding to use the rule or not is on the user's side.
=== on 4 May 2020, 13:48:47 Johann Beleites wrote: