Dear devs,
As discussed in the thread[1], I’d like to start a vote on migrating the test framework of Flink project to JUnit 5. JUnit 5[2] provides many exciting new features that can simplify the development of test cases and make our test structure cleaner, such as pluggable extension models (replacing rules such as TestLogger/MiniCluster), improved parameterized test, annotation support and nested/dynamic test. The migration path towards JUnit 5 would be: 1. Remove JUnit 4 dependency and introduce junit5-vintage-engine in the project The vintage engine will keep all existing JUnit4-style cases still valid. Since classes of JUnit 4 and 5 are located under different packages, there won’t be conflict having JUnit 4 cases in the project. 2. Rewrite JUnit 4 rules in JUnit 5 extension style (~10 rules) 3. Migrate all existing tests to JUnit 5 This would be a giant commit similar to code reformatting and could be merged after cutting the 1.14 release branch. There are many migration examples and experiences to refer to, also Intellij IDEA provides tools for refactoring. 4. Ban JUnit 4 imports in CheckStyle Some modules ilke Testcontainers still require JUnit 4 in the classpath, and JUnit 4 could still appear as transitive dependency. Banning JUnit 4 imports can avoid developers mistakenly using JUnit 4 and split the project into 4 & 5 again. 5. Remove vintage runner and some cleanup This vote will last for at least 72 hours, following the consensus voting process. Thanks! [1] https://lists.apache.org/thread.html/r6c8047c7265b8a9f2cb3ef6d6153dd80b94d36ebb03daccf36ab4940%40%3Cdev.flink.apache.org%3E [2] https://junit.org/junit5 -- Best Regards, *Qingsheng Ren* Email: renqs...@gmail.com