On Thu, 2 Oct 2025 16:01:55 GMT, Kevin Rushforth <[email protected]> wrote:

> Since you didn't make any changes to the test source code, I presume that 
> JUnit 6 is compatible with 5 (leaving aside the removed deprecations, which 
> don't affect us), unlike the transition from 4 to 5 (version 5 was 
> effectively an entirely new API). 

Yes, it is completely compatible and I could not spot any problems. Locally, 
everything works and also the GHA work (did a test run before I made the PR).

> I'll take a look at the release notes, but can you summarize the changes you 
> are aware of?

Sure! Most of the changes are either removal of deprecated functions or 
internal changes / dependency changes which we do not use. 
There is a lot of new functionality for launching test classes / using a custom 
test engine (we use `junit-jupiter-engine`). 
We don't do any custom stuff, so we are good here. But for reference, here is 
more information: 
https://docs.junit.org/current/user-guide/index.html#launcher-api-launcher-cancellation.

One interesting note and addition is: `Stack traces are now pruned up to the 
test method or lifecycle method`.
The result is that the stack trace is slightly shorter, as it does not contain 
anything before the test method. 
But for some reason I could not observe that in JavaFX, only another project I 
did.

> `.\gradlew test`

Before:

...
at 
org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at 
org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:145)
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:531)
at 
de.abc.def.domain.ExportTriggerTest.testExportTriggerPositive(ExportTriggerTest.java:26)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)

After:

...
at 
org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:158)
at 
org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:139)
at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:201)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:152)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:147)
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:558)
at 
de.abc.def.domain.ExportTriggerTest.testExportTriggerPositive(ExportTriggerTest.java:26)


> This PR changes gradle build only. What about Eclipse and other IDEs? Are 
> they compatible? Are we going to lose the ability to run junit tests from 
> within the IDE?

Yes they all are compatible, as nothing really changed when writing tests. 
Imports are the same, the methods are the same, everything is still compatible. 
I can also verify that it works in IntelliJ.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1925#issuecomment-3362128624

Reply via email to