Hello, I liked the post below from the Medium platform. Sharing it here for reference purposes.
What’s new in JUnit 6: Key Changes and Improvements https://medium.com/javarevisited/whats-new-in-junit-6-key-changes-and-improvements-551a84d7ed1f -- Kind Regards, Ashish Vijaywargiya Vice President of Operations *HotWax Systems* *Enterprise open source experts* http://www.hotwaxsystems.com On Sat, May 30, 2026 at 11:25 AM Ashish Vijaywargiya < [email protected]> wrote: > Thank you, Nicolas and Arun! > > I have just merged my PR - > https://github.com/apache/ofbiz-framework/pull/1301 into the ofbiz trunk > codebase. > > I will keep a close eye on the Dev mailing list and assist with JUnit > 6.1.0-related issues. > > Now the OFBiz trunk codebase will run on the JUnit 6.1.0 testing framework > version. > > Thank you. > > -- > Kind Regards, > Ashish Vijaywargiya > Vice President of Operations > *HotWax Systems* > *Enterprise open source experts* > http://www.hotwaxsystems.com > > > > On Sat, May 30, 2026 at 10:44 AM Arun Patidar <[email protected]> > wrote: > >> Hi Ashish, >> >> I have reviewed the PR, and it looks good to me. >> >> >> Best regards, >> --- >> Arun Patidar >> >> >> On Fri, May 29, 2026 at 10:51 PM Nicolas Malin via dev < >> [email protected]> >> wrote: >> >> > Hello Ashish, >> > >> > I have no objection to move to Junit 6. If you estimate that there is an >> > advantage to do, without objection from other let's go :) >> > >> > I admit, I didn't use Junit, I use groovy for my test that I found more >> > powerful >> > >> > Nicolas >> > >> > On 5/29/26 15:38, Ashish Vijaywargiya wrote: >> > > Dear Apache OFBiz Dev Community Members, >> > > >> > > I am feeling glad to let you know that I have completed this >> POC(Migrate >> > > Apache OFBiz test suite from JUnit 4 to JUnit 6 (Jupiter)). >> > > >> > > The following details will be helpful to you(I have used most of the >> > > details shown below in my commit as well): >> > > >> > > ================================= >> > > Migrate Apache OFBiz test suite from JUnit 4 to JUnit 6 (Jupiter) >> > > >> > > Key changes include: >> > > >> > > - Assertions Parameter Order: Updated `assertEquals` calls to match >> the >> > new >> > > JUnit 6 method signature. >> > > >> > > The custom failure message is now passed as the last argument rather >> than >> > > the first `assertEquals(expected, actual, "message")`. >> > > >> > > - Exception Testing Syntax: Updated `assertThrows` to use JUnit >> Jupiter >> > > API. >> > > >> > > >> > > The following import statement has been changed and introduced jupiter >> > > specific import statement: >> > > >> > > import org.junit.Test; --> import org.junit.jupiter.api.Test; >> > > import org.junit.Before; --> import org.junit.jupiter.api.BeforeEach; >> > > import org.junit.After; --> import org.junit.jupiter.api.AfterEach; >> > > import org.junit.BeforeClass; --> import >> org.junit.jupiter.api.BeforeAll; >> > > import org.junit.AfterClass; --> import >> org.junit.jupiter.api.AfterAll; >> > > import org.junit.Ignore; --> import org.junit.jupiter.api.Disabled; >> > > import org.junit.Assert.*; --> import static >> > > org.junit.jupiter.api.Assertions.*; >> > > >> > > Additionally, JUnit 4 assertions with failure messages must have their >> > > parameters swapped because JUnit 4 expects (String message, expected, >> > > actual) while JUnit 6 Jupiter expects (expected, actual, String >> message): >> > > >> > > assertEquals(String, Object, Object) --> assertEquals(Object, Object, >> > > String) >> > > assertTrue(String, boolean) --> assertTrue(boolean, String) >> > > assertFalse(String, boolean) --> assertFalse(boolean, String) >> > > assertNotNull(String, Object) --> assertNotNull(Object, String) >> > > assertNull(String, Object) --> assertNull(Object, String) >> > > assertSame(String, Object, Object) --> assertSame(Object, Object, >> String) >> > > assertNotSame(String, Object, Object) --> assertNotSame(Object, >> Object, >> > > String) >> > > >> > > And the following changes are also done in this commit: >> > > >> > > - @Before >> > > + @BeforeEach >> > > >> > > - @After >> > > + @AfterEach >> > > >> > > Important Reference Link: >> > > https://docs.junit.org/6.1.0/migrating-from-junit4.html >> > > ================================= >> > > >> > > Here is the PR for this work. >> > > >> > > https://github.com/apache/ofbiz-framework/pull/1301 >> > > >> > > >> > >> https://github.com/apache/ofbiz-framework/compare/trunk...ashishvijaywargiya:ofbiz-framework:junit-migration-from-v4-to-v6 >> > > >> > > I will wait for Apache OFBiz community members' feedback for the next >> 2- >> > 4 >> > > days, and then I will merge my PR into the ofbiz trunk. >> > > >> > > Thank you! >> > > >> > > -- >> > > Kind Regards, >> > > Ashish Vijaywargiya >> > > Vice President of Operations >> > > *HotWax Systems* >> > > *Enterprise open source experts* >> > > http://www.hotwaxsystems.com >> > > >> > > >> > > >> > > On Wed, May 27, 2026 at 3:50 PM Ashish Vijaywargiya < >> > > [email protected]> wrote: >> > > >> > >> Dear All, >> > >> >> > >> Yesterday, I was looking at the following Jira ticket: >> > >> https://issues.apache.org/jira/browse/OFBIZ-13138 >> > >> >> > >> Then I thought to start a discussion around migrating the Apache >> OFBiz >> > >> testing framework from JUnit 4 to JUnit 6 (JUnit Platform + Jupiter >> > >> ecosystem). >> > >> >> > >> Currently, the OFBiz trunk codebase is primarily based on JUnit 4. >> While >> > >> JUnit 4 has served the Java ecosystem well for many years, the JUnit >> > team >> > >> has officially placed JUnit 4 into maintenance mode(see reference >> link >> > >> below). According to the official JUnit project, only critical bug >> fixes >> > >> and security updates are expected going forward, while active >> innovation >> > >> and ecosystem improvements are focused on the JUnit Platform and >> Jupiter >> > >> ecosystem. >> > >> >> > >> Because of this, migrating OFBiz to JUnit 6 could provide long-term >> > >> benefits in maintainability, modernization, ecosystem alignment, and >> > >> testing capabilities. >> > >> >> > >> Some key benefits of migrating to JUnit 6 include: >> > >> >> > >> 1. Modern Testing Architecture >> > >> JUnit 6 is built on the JUnit Platform architecture, which provides: >> > >> >> > >> * better modularity, >> > >> * improved extensibility, >> > >> * cleaner integrations, >> > >> * and modern testing infrastructure. >> > >> >> > >> 2. Gradual Migration Support >> > >> JUnit Vintage allows existing JUnit 4 tests to continue running while >> > new >> > >> tests are written using Jupiter APIs. >> > >> This enables incremental migration without requiring a complete >> rewrite >> > of >> > >> the entire OFBiz test suite. >> > >> >> > >> 3. Better Test Organization >> > >> JUnit Jupiter introduces modern testing features such as: >> > >> >> > >> * @Nested tests, >> > >> * @DisplayName, >> > >> * grouped assertions using assertAll(), >> > >> * dynamic tests, >> > >> * and cleaner lifecycle handling. >> > >> >> > >> These features improve the readability and maintainability of complex >> > test >> > >> suites. >> > >> >> > >> 4. Improved Extension Model >> > >> - JUnit 6 replaces the older Runner and Rule model with a much >> cleaner >> > >> extension architecture. >> > >> - This makes custom testing utilities easier to develop and maintain. >> > >> >> > >> 5. Enhanced Parameterized Testing >> > >> - JUnit Jupiter significantly improves support for parameterized >> tests >> > >> using: >> > >> >> > >> * CSV sources, >> > >> * method sources, >> > >> * enum sources, >> > >> * and custom argument providers. >> > >> >> > >> This can help reduce repetitive test code across OFBiz modules. >> > >> >> > >> 6. Dependency Injection Support >> > >> - JUnit Jupiter provides built-in parameter injection support for >> > >> lifecycle methods and test methods. >> > >> - This helps simplify test setup logic and reduces boilerplate code. >> > >> >> > >> 7. Conditional Test Execution >> > >> - JUnit 6 supports conditional execution annotations such as: >> > >> >> > >> * @EnabledOnOs, >> > >> * @EnabledOnJre, >> > >> * @EnabledIfEnvironmentVariable, >> > >> * and @DisabledIfSystemProperty. >> > >> >> > >> These features are useful for CI/CD pipelines and >> environment-specific >> > >> test execution. >> > >> >> > >> 8. Parallel Test Execution >> > >> - Modern JUnit versions provide better support for parallel execution >> > >> which can help reduce overall CI execution time for large test >> suites. >> > >> >> > >> 9. Improved IDE and Tooling Support >> > >> - Modern IDEs and build tools provide much stronger support for JUnit >> > >> Jupiter: >> > >> >> > >> * improved debugging, >> > >> * richer test reporting, >> > >> * enhanced navigation, >> > >> * better parameterized test visualization, >> > >> * and improved test discovery. >> > >> >> > >> 10. Better Ecosystem Alignment >> > >> - Most modern Java frameworks, libraries, plugins, and testing >> utilities >> > >> are actively aligned with the JUnit Platform ecosystem. >> > >> - Migrating OFBiz helps keep the project aligned with modern Java >> > >> development practices. >> > >> >> > >> 11. Unified and Cleaner Dependency Management >> > >> - JUnit 6 provides unified versioning across Platform, Jupiter, and >> > >> Vintage modules, which simplifies dependency management and reduces >> > >> compatibility complexity. >> > >> >> > >> 12. Long-Term Sustainability >> > >> - Since JUnit 4 is now in maintenance mode, continued reliance on it >> > >> increases long-term technical debt. >> > >> - Migrating to JUnit 6 helps future-proof the OFBiz testing >> > infrastructure. >> > >> >> > >> A few reference links: >> > >> https://docs.junit.org/6.1.0/migrating-from-junit4.html >> > >> https://github.com/junit-team/junit4/blob/main/README.md >> > >> https://junit.org/ >> > >> >> > >> I will work on this POC and will share updates soon with the OFBiz >> > >> community. >> > >> >> > >> If you have additional thoughts on this topic, please share. >> > >> Thank you. >> > >> >> > >> -- >> > >> Kind Regards, >> > >> Ashish Vijaywargiya >> > >> Vice President of Operations >> > >> *HotWax Systems* >> > >> *Enterprise open source experts* >> > >> http://www.hotwaxsystems.com >> > >> >> > >> >> > >> >
