Conversation
|
🖼️ Screenshot tests have failed. The purpose of these tests is to ensure that changes introduced in this PR don't break visual features. They are visual unit tests. 📄 Where to find the report:
✅ If you did mean to change things: ✨ If you are creating entirely new tests: Note; it is very important that the committed reference images are created on the build pipeline, locally created images are not reliable. Similarly tests will fail locally but you can look at the report to check they are "visually similar". See https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-screenshot-tests/README.md for more information Contact @richardTingle (aka richtea) for guidance if required |
There was a problem hiding this comment.
Code Review
This pull request migrates the project's test suite from JUnit 4 to JUnit 5 (Jupiter). It updates the Gradle dependencies, including the addition of the JUnit BOM and platform launcher, and refactors numerous test files to use the new JUnit 5 annotations and assertion classes. A critical issue was identified regarding an invalid version for the JUnit BOM in the version catalog.
|
@richardTingle It looks like the screenshot changes are all minuscule changes, let me know if you disagree. |
There was a problem hiding this comment.
Pull request overview
Migrates the project’s test suite and build configuration from JUnit 4 to JUnit 5 (Jupiter), updating annotations, assertions, and test infrastructure.
Changes:
- Switched test sources from
org.junit.*toorg.junit.jupiter.*APIs (including parameterized tests and lifecycle annotations). - Replaced JUnit4 runners/rules/expected-exception patterns with Jupiter equivalents (
@ExtendWith,@TempDir,assertThrows, etc.). - Updated Gradle dependency catalog and test task configuration to run on the JUnit Platform.
Reviewed changes
Copilot reviewed 85 out of 85 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| jme3-terrain/src/test/java/com/jme3/terrain/TestTerrainExporting.java | Replace JUnit4 assertions/imports with Jupiter |
| jme3-terrain/src/test/java/com/jme3/terrain/collision/TerrainCollisionTest.java | Convert lifecycle annotations/assertions to Jupiter |
| jme3-saferallocator/src/test/java/com/jme3/util/SaferAllocMemoryGuardTest.java | Convert to Jupiter + use static assertion imports |
| jme3-plugins/src/test/java/com/jme3/scene/plugins/gltf/GltfLoaderTest.java | Convert asserts/throws/fail patterns to Jupiter |
| jme3-plugins/src/test/java/com/jme3/material/plugin/TestMaterialWrite.java | Convert setup annotation + assertions to Jupiter |
| jme3-plugins/src/test/java/com/jme3/material/plugin/TestMaterialDefWrite.java | Convert to Jupiter; adjust null-check assertion usage |
| jme3-plugins/src/test/java/com/jme3/export/JmeExporterTest.java | Migrate Parameterized+TempDir to Jupiter APIs |
| jme3-plugins/src/test/java/com/jme3/export/InputOutputCapsuleTest.java | Convert assertions/fail usage to Jupiter static imports |
| jme3-jbullet/src/test/java/com/jme3/jbullet/test/PreventBulletIssueRegressions.java | Convert assertions/imports to Jupiter |
| jme3-effects/src/test/java/com/jme3/post/filters/SSAOFilterTest.java | Convert assertions/imports to Jupiter |
| jme3-effects/src/test/java/com/jme3/post/filters/PosterizationFilterTest.java | Convert assertions/imports to Jupiter |
| jme3-effects/src/test/java/com/jme3/post/filters/FXAAFilterTest.java | Convert assertions/imports to Jupiter |
| jme3-effects/src/test/java/com/jme3/post/filters/DepthOfFieldFilterTest.java | Convert assertions/imports to Jupiter |
| jme3-effects/src/test/java/com/jme3/post/filters/CrossHatchFilterTest.java | Convert assertions/imports to Jupiter |
| jme3-effects/src/test/java/com/jme3/post/filters/CartoonEdgeFilterTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/util/TestIssue1919.java | Replace expected-exception annotation with assertThrows |
| jme3-core/src/test/java/com/jme3/util/TestIssue1909.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/util/TempVarsTest.java | Convert assertion argument order to Jupiter style |
| jme3-core/src/test/java/com/jme3/util/StructTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/util/ListSortTest.java | Convert @Before to @BeforeEach + Jupiter assertions |
| jme3-core/src/test/java/com/jme3/util/ListMapTest.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/tools/LodGeneratorTest.java | Convert static assertion import to Jupiter |
| jme3-core/src/test/java/com/jme3/texture/TextureArrayTest.java | Convert wildcard static asserts + @Test to Jupiter |
| jme3-core/src/test/java/com/jme3/texture/TestIssue2250.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/test/PreventCoreIssueRegressions.java | Convert assertions/imports to Jupiter static style |
| jme3-core/src/test/java/com/jme3/shadow/FilterPostProcessingTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/shader/UniformTest.java | Convert static assertion imports to Jupiter |
| jme3-core/src/test/java/com/jme3/shader/GLSLPreprocessorTest.java | Convert static assertion imports + @Test to Jupiter |
| jme3-core/src/test/java/com/jme3/shader/DefineListTest.java | Convert static assertion imports + @Test to Jupiter |
| jme3-core/src/test/java/com/jme3/SetupTest.java | Replace expected-exception with assertThrows |
| jme3-core/src/test/java/com/jme3/scene/threadwarden/SceneGraphThreadWardenTest.java | Convert lifecycle + assertions to Jupiter |
| jme3-core/src/test/java/com/jme3/scene/threadwarden/SceneGraphThreadWardenNodeExtendedTest.java | Convert JUnit4 parameterized runner to Jupiter params |
| jme3-core/src/test/java/com/jme3/scene/threadwarden/SceneGraphThreadWardenGeometryExtendedTest.java | Convert JUnit4 parameterized runner to Jupiter params |
| jme3-core/src/test/java/com/jme3/scene/TestUserData.java | Remove TestCase inheritance; use Jupiter assertions |
| jme3-core/src/test/java/com/jme3/scene/TestIssue954.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/scene/SpatialTest.java | Replace expected-exception annotations with assertThrows |
| jme3-core/src/test/java/com/jme3/scene/ShapeGeometryTest.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/scene/shape/ShapeBoundsTest.java | Convert assertions to Jupiter static imports |
| jme3-core/src/test/java/com/jme3/scene/SceneMatParamOverrideTest.java | Convert @Test + static assertions to Jupiter |
| jme3-core/src/test/java/com/jme3/scene/SceneGraphTraversalTest.java | Switch JUnit assertThat import; use Jupiter @Test |
| jme3-core/src/test/java/com/jme3/scene/plugins/OBJLoaderTest.java | Convert @Before to @BeforeEach + Jupiter assertions |
| jme3-core/src/test/java/com/jme3/scene/PhantomTrianglesTest.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/scene/MPOTestUtils.java | Convert static assert import to Jupiter |
| jme3-core/src/test/java/com/jme3/scene/mesh/VirtualIndexBufferTest.java | Replace ExpectedException rule with assertThrows |
| jme3-core/src/test/java/com/jme3/scene/mesh/MeshTest.java | Convert static assert import + @Test to Jupiter |
| jme3-core/src/test/java/com/jme3/scene/instancing/InstancedNodeTest.java | Convert assertions to Jupiter static imports |
| jme3-core/src/test/java/com/jme3/scene/debug/TestCloneMesh.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/renderer/OpaqueComparatorTest.java | Replace expected-exception with assertThrows; Jupiter lifecycle |
| jme3-core/src/test/java/com/jme3/renderer/Issue2333Test.java | Replace expected-exception annotations with assertThrows |
| jme3-core/src/test/java/com/jme3/math/Vector3fTest.java | Replace ExpectedException rule with assertThrows |
| jme3-core/src/test/java/com/jme3/math/TriangleTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/math/TestTransform.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/math/TestToString.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/math/TestIssue957.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/math/TestIssue2023.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/math/TestIssue1388.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/math/SplineTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/math/QuaternionTest.java | Remove TestCase inheritance; use Jupiter @Test |
| jme3-core/src/test/java/com/jme3/math/FastMathTest.java | Replace @Ignore with @Disabled; use assertThrows |
| jme3-core/src/test/java/com/jme3/math/ColorRGBATest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/material/RenderStateTest.java | Convert assertions/imports to Jupiter static style |
| jme3-core/src/test/java/com/jme3/material/plugins/LoadJ3mdTest.java | Replace expected-exception annotations with assertThrows |
| jme3-core/src/test/java/com/jme3/material/plugins/J3MLoaderTest.java | Switch Mockito runner to Jupiter extension |
| jme3-core/src/test/java/com/jme3/material/MaterialTest.java | Replace expected-exception annotations with assertThrows |
| jme3-core/src/test/java/com/jme3/material/MaterialMatParamTest.java | Convert lifecycle + assertions to Jupiter |
| jme3-core/src/test/java/com/jme3/light/LightSortTest.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/light/LightFilterTest.java | Convert @Before to @BeforeEach + Jupiter @Test |
| jme3-core/src/test/java/com/jme3/effect/influencers/ParticleInfluencerTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/collision/CollideIgnoreTransformTest.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/collision/BoundingCollisionTest.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/cinematic/MotionPathTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/cinematic/CinematicTest.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/bounding/TestBoundingSphere.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/bounding/TestBoundingBox.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/audio/AudioNodeTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/audio/AudioFilterTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/asset/TestLocators.java | Convert assertions/imports to Jupiter static style |
| jme3-core/src/test/java/com/jme3/asset/LoadShaderSourceTest.java | Convert @Test import to Jupiter |
| jme3-core/src/test/java/com/jme3/anim/tween/action/ClipActionTest.java | Convert static assertions to Jupiter |
| jme3-core/src/test/java/com/jme3/anim/JointCloneTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/anim/ArmatureMaskTest.java | Convert assertions/imports to Jupiter |
| jme3-core/src/test/java/com/jme3/anim/AnimComposerTest.java | Replace expected-exception with assertThrows; Jupiter asserts |
| jme3-android-examples/src/test/java/org/jmonkeyengine/jme3androidexamples/ExampleUnitTest.java | Convert @Test + static assertions to Jupiter |
| gradle/libs.versions.toml | Replace JUnit4 dep with JUnit5 BOM/Jupiter + add platform launcher + Mockito Jupiter |
| common.gradle | Configure JUnit Platform (useJUnitPlatform) + update test dependencies |
Comments suppressed due to low confidence (1)
jme3-plugins/src/test/java/com/jme3/export/JmeExporterTest.java:143
testExporterConsistencyis parameterized over exporters, but thecurrentExporterparameter is never used. This causes the whole consistency test (which already iterates over exporters internally) to run redundantly for each exporter value. Either remove parameterization here (use a plain@Test), or refactor the test to use only the provided exporter instance.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
jme3-plugins/src/test/java/com/jme3/material/plugin/TestMaterialDefWrite.java
Show resolved
Hide resolved
Looks like there are no changes at all now. So you're all good |
We still use junit 4. Trying to migrate to junit 5.
This is a bulky all in one PR.