From f8cfc95510f02c0e7bad64395fc0f8c2d410ab56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=8A?= =?UTF-8?q?=D1=80=20=D0=9A=D1=83=D1=80=D1=82=D0=B0=D0=BA=D0=BE=D0=B2?= Date: Fri, 7 Mar 2025 22:05:54 +0200 Subject: [PATCH] Migrate SWT suites to JUnit 5 First towards being able to move unit tests to JUnit 5. --- .../swt/tests/junit/AllBrowserTests.java | 16 +--- .../swt/tests/junit/AllGraphicsTests.java | 14 ++-- .../swt/tests/junit/AllNonBrowserTests.java | 23 ++---- .../org/eclipse/swt/tests/junit/AllTests.java | 14 ++-- .../swt/tests/junit/AllWidgetTests.java | 14 ++-- .../Test_org_eclipse_swt_widgets_Display.java | 82 +++++++++---------- .../junit/performance/PerformanceTests.java | 9 +- .../META-INF/MANIFEST.MF | 9 +- tests/org.eclipse.swt.tests/pom.xml | 34 ++++++-- 9 files changed, 104 insertions(+), 111 deletions(-) diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java index 2cebce23133..2e572ad653f 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java @@ -14,20 +14,12 @@ package org.eclipse.swt.tests.junit; -import org.eclipse.test.TracingSuite; -import org.eclipse.test.TracingSuite.TracingOptions; -import org.junit.runner.JUnitCore; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; -@RunWith(TracingSuite.class) -@TracingOptions(stackDumpTimeoutSeconds = 60) -@Suite.SuiteClasses({ +@Suite +@SelectClasses({ Test_org_eclipse_swt_browser_Browser.class, }) public class AllBrowserTests { - -public static void main(String[] args) { - JUnitCore.main(AllBrowserTests.class.getName()); -} } diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java index fbac8dfa092..e88b7f5fa84 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2015 IBM Corporation and others. + * Copyright (c) 2000, 2025 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,15 +13,14 @@ *******************************************************************************/ package org.eclipse.swt.tests.junit; -import org.junit.runner.JUnitCore; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; /** * Suite for testing all of the graphics test cases. */ -@RunWith(Suite.class) -@Suite.SuiteClasses({ Test_org_eclipse_swt_graphics_Color.class, +@Suite +@SelectClasses({ Test_org_eclipse_swt_graphics_Color.class, Test_org_eclipse_swt_graphics_Cursor.class, Test_org_eclipse_swt_graphics_DeviceData.class, Test_org_eclipse_swt_graphics_Font.class, @@ -42,7 +41,4 @@ Test_org_eclipse_swt_graphics_ImageLoaderEvent.class, Test_org_eclipse_swt_graphics_Transform.class }) public class AllGraphicsTests { - public static void main(String[] args) { - JUnitCore.main(AllGraphicsTests.class.getName()); - } } diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests.java index 69b75e5a837..af9a1bd017d 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2022 IBM Corporation and others. + * Copyright (c) 2000, 2025 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -18,17 +18,16 @@ import java.util.List; import org.eclipse.swt.graphics.Resource; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.runner.JUnitCore; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; /** * Suite for running most SWT test cases (all except for browser tests). */ -@RunWith(Suite.class) -@Suite.SuiteClasses({ Test_org_eclipse_swt_SWT.class, Test_org_eclipse_swt_SWTException.class, +@Suite +@SelectClasses({ Test_org_eclipse_swt_SWT.class, Test_org_eclipse_swt_SWTException.class, Test_org_eclipse_swt_SWTError.class, Test_org_eclipse_swt_widgets_Display.class, AllGraphicsTests.class, AllWidgetTests.class, Test_org_eclipse_swt_layout_GridData.class, Test_org_eclipse_swt_events_ControlEvent.class, Test_org_eclipse_swt_events_ModifyEvent.class, @@ -50,7 +49,7 @@ public class AllNonBrowserTests { private static List leakedResources; - @BeforeClass + @BeforeAll public static void beforeClass() { // Set up ResourceTracked to detect any leaks leakedResources = new ArrayList<> (); @@ -67,7 +66,7 @@ public static void beforeClass() { * through a test and not through @AfterClass, but this is a * suite class and not a test class, so it can't have tests. */ - @AfterClass + @AfterAll public static void afterClass() { // Run GC in order do detect any outstanding leaks System.gc (); @@ -93,10 +92,6 @@ public static void afterClass() { } } - public static void main(String[] args) { - JUnitCore.main(AllNonBrowserTests.class.getName()); - } - /* * The logical order to run the tests in is: - SWT, SWTError, SWTException - * Display - graphics classes - items and Caret, etc - widgets - dialogs - diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java index dd9b385f073..03c8029f0db 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2015 IBM Corporation and others. + * Copyright (c) 2000, 2025 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -14,21 +14,17 @@ package org.eclipse.swt.tests.junit; -import org.junit.runner.JUnitCore; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; /** * Suite for running all SWT test cases. */ -@RunWith(Suite.class) -@Suite.SuiteClasses({ +@Suite +@SelectClasses({ AllNonBrowserTests.class, AllBrowserTests.class }) public class AllTests { -public static void main(String[] args) { - JUnitCore.main(AllTests.class.getName()); -} } diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java index 0eba14cba0a..f99b6f5055a 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000 2015 IBM Corporation and others. + * Copyright (c) 2000, 2025 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -14,15 +14,14 @@ *******************************************************************************/ package org.eclipse.swt.tests.junit; -import org.junit.runner.JUnitCore; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; /** * Suite for testing all of the widget test cases. */ -@RunWith(Suite.class) -@Suite.SuiteClasses({ Test_org_eclipse_swt_widgets_Shell.class, +@Suite +@SelectClasses({ Test_org_eclipse_swt_widgets_Shell.class, Test_org_eclipse_swt_widgets_ExpandItem.class, Test_org_eclipse_swt_widgets_MenuItem.class, Test_org_eclipse_swt_widgets_ToolItem.class, Test_org_eclipse_swt_widgets_TabItem.class, Test_org_eclipse_swt_widgets_TableItem.class, Test_org_eclipse_swt_widgets_TableColumn.class, @@ -53,7 +52,4 @@ Test_org_eclipse_swt_widgets_ScrolledComposite.class, Test_org_eclipse_swt_custom_BusyIndicator.class}) public class AllWidgetTests { - public static void main(String[] args) { - JUnitCore.main(AllWidgetTests.class.getName()); - } } diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java index d540bf2ddb6..bf658defb71 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java @@ -15,13 +15,13 @@ package org.eclipse.swt.tests.junit; import static org.eclipse.swt.tests.junit.SwtTestUtil.assertSWTProblem; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; import java.util.concurrent.CompletableFuture; @@ -46,10 +46,9 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Synchronizer; import org.eclipse.test.Screenshots; -import org.junit.Assume; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TestName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.condition.DisabledOnOs; /** * Automated Test Suite for class org.eclipse.swt.widgets.Display @@ -65,9 +64,6 @@ public class Test_org_eclipse_swt_widgets_Display { private static final boolean BUG_492569 = SwtTestUtil.isWindows && isRunningOnEclipseOrgHudson; -@Rule -public TestName testName = new TestName(); - @Test public void test_Constructor() { Display disp = new Display(); @@ -144,8 +140,8 @@ else if (e.type == SWT.Dispose) } finally { display.close(); } - assertFalse(":a:", callbackReceived[CLOSE_CALLBACK]); - assertTrue(":b:", callbackReceived[DISPOSE_CALLBACK]); + assertFalse(callbackReceived[CLOSE_CALLBACK]); + assertTrue(callbackReceived[DISPOSE_CALLBACK]); display = new Display(); try { @@ -153,7 +149,7 @@ else if (e.type == SWT.Dispose) } finally { display.close(); } - assertTrue(":c:", callbackReceived[CLOSE_CALLBACK]); + assertTrue(callbackReceived[CLOSE_CALLBACK]); } @Test @@ -250,10 +246,10 @@ public void test_disposeExecLjava_lang_Runnable() { Display testDisplay = new Display(); disposeExecRan = false; testDisplay.disposeExec(() -> disposeExecRan = true); - assertEquals("Display should not be disposed", false, testDisplay.isDisposed()); + assertFalse(testDisplay.isDisposed(), "Display should not be disposed"); testDisplay.dispose(); - assertTrue("Display should be disposed", testDisplay.isDisposed()); - assertTrue("DisposeExec Runnable did not run", disposeExecRan); + assertTrue(testDisplay.isDisposed(), "Display should be disposed"); + assertTrue(disposeExecRan, "DisposeExec Runnable did not run"); } @Test @@ -268,9 +264,8 @@ public void test_findDisplayLjava_lang_Thread() { } } -@Test +@Test @DisabledOnOs(value=org.junit.jupiter.api.condition.OS.MAC, disabledReason = "Test fails on Mac: Bug 536564" ) public void test_getActiveShell() { - Assume.assumeFalse("Test fails on Mac: Bug 536564", SwtTestUtil.isCocoa); Display display = new Display(); try { Shell shell = new Shell(display); @@ -372,8 +367,7 @@ public void test_getDismissalAlignment() { Display display = new Display(); try { int alignment = display.getDismissalAlignment(); - assertTrue("getDismissalAlignment should return SWT.LEFT or SWT.RIGHT", - alignment == SWT.LEFT || alignment == SWT.RIGHT); + assertTrue(alignment == SWT.LEFT || alignment == SWT.RIGHT, "getDismissalAlignment should return SWT.LEFT or SWT.RIGHT"); } finally { display.dispose(); } @@ -416,9 +410,9 @@ public void test_getMonitors() { Display display = new Display(); Monitor[] monitors = display.getMonitors(); assertNotNull(monitors); - assertTrue("at least one monitor should be returned", monitors.length >= 1); + assertTrue(monitors.length >= 1, "at least one monitor should be returned"); for (int i = 0; i < monitors.length; i++) - assertNotNull("monitor at index "+i+" should not be null", monitors[i]); + assertNotNull(monitors[i], "monitor at index "+i+" should not be null"); display.dispose(); } @@ -1103,7 +1097,7 @@ public void test_postLorg_eclipse_swt_widgets_Event() { event = new Event(); event.type = SWT.KeyDown; event.keyCode = -1; // bogus key code; default 0 character - assertTrue("Display#post failed, probably because screen is not rendered (bug 407862)", display.post(event)); //$NON-NLS-1$ + assertTrue(display.post(event), "Display#post failed, probably because screen is not rendered (bug 407862)"); //$NON-NLS-1$ // don't test KeyDown/KeyUp with a character to avoid sending to // random window if test shell looses focus @@ -1237,7 +1231,7 @@ public void test_setAppNameLjava_lang_String() { } @Test -public void test_setCursorLocationII() { +public void test_setCursorLocationII(TestInfo info) { Display display = new Display(); try { // Move mouse back to original location, to prevent mouse being jerked around. @@ -1250,11 +1244,11 @@ public void test_setCursorLocationII() { Point actual = display.getCursorLocation(); if (!BUG_492569 && SwtTestUtil.isX11) { if (!location.equals(actual)) { - Screenshots.takeScreenshot(getClass(), testName.getMethodName()); // Bug 528968 This call causes crash on Wayland. + Screenshots.takeScreenshot(getClass(), info.getDisplayName()); // Bug 528968 This call causes crash on Wayland. fail("\nExpected:"+location.toString()+" Actual:"+actual.toString()); } } else { - System.out.println(getClass().getName() + "#" + testName.getMethodName() + ": actual == " + actual); + System.out.println(getClass().getName() + "#" + info.getDisplayName() + ": actual == " + actual); } } finally { @@ -1263,7 +1257,7 @@ public void test_setCursorLocationII() { } @Test -public void test_setCursorLocationLorg_eclipse_swt_graphics_Point() { +public void test_setCursorLocationLorg_eclipse_swt_graphics_Point(TestInfo info) { Display display = new Display(); try { // Move mouse back to original location, to prevent mouse being jerked around. @@ -1282,11 +1276,11 @@ public void test_setCursorLocationLorg_eclipse_swt_graphics_Point() { Point actual = display.getCursorLocation(); if (!BUG_492569 && SwtTestUtil.isX11) { if (!location.equals(actual)) { - Screenshots.takeScreenshot(getClass(), testName.getMethodName()); // Bug 528968 This call causes crash on Wayland. + Screenshots.takeScreenshot(getClass(), info.getDisplayName()); // Bug 528968 This call causes crash on Wayland. fail("\nExpected:"+location.toString()+" Actual:"+actual.toString()); } } else { - System.out.println(getClass().getName() + "#" + testName.getMethodName() + ": actual == " + actual); + System.out.println(getClass().getName() + "#" + info.getDisplayName() + ": actual == " + actual); } } finally { display.dispose(); @@ -1469,7 +1463,7 @@ public void test_syncCall_RuntimeException() { final Display display = new Display(); try { int depth=display.syncCall(() -> {throw new IllegalArgumentException("42");}); - assertFalse("should not be reached "+depth, true); + fail("should not be reached "+depth); } catch (RuntimeException e) { assertEquals("42", e.getMessage()); } finally { @@ -1481,7 +1475,7 @@ public void test_syncCall_Exception() { final Display display = new Display(); try { int depth=display.syncCall(() -> {throw new IOException("42");}); - assertFalse("should not be reached "+depth, true); + fail("should not be reached "+depth); } catch (IOException e) { assertEquals("42", e.getMessage()); } finally { @@ -1494,20 +1488,18 @@ public void test_syncCall_SWTException() { display.dispose(); try { int magic=display.syncCall(() -> {display.dispose(); return 42;}); - assertFalse("should not be reached "+magic, true); + fail("should not be reached "+magic); } catch (SWTException e) { assertEquals("Device is disposed", e.getMessage()); } } @Test -public void test_syncCall_concurrentCallable() { +public void test_syncCall_concurrentCallable() throws Exception { final Display display = new Display(); try { java.util.concurrent.Callable c=() -> {return 42;}; int magic=display.syncCall(c::call); assertEquals(42, magic); - } catch (Exception e) { - assertFalse("should not be reached ", true); } finally { display.dispose(); } @@ -1518,7 +1510,7 @@ public void test_syncCall_concurrentCallable_Exception() { try { java.util.concurrent.Callable c=() -> {throw new IOException("42");}; int depth=display.syncCall(c::call); - assertFalse("should not be reached "+depth, true); + fail("should not be reached "+depth); } catch (Exception e) { assertEquals("42", e.getMessage()); } finally { @@ -1560,7 +1552,7 @@ public void test_timerExecILjava_lang_Runnable() { } // Verify the timerExec with less than zero milliseconds didn't execute. - assertFalse("< 0 ms timer did execute", timerExecRan[0]); + assertFalse(timerExecRan[0], "< 0 ms timer did execute"); } finally { display.dispose(); } @@ -1589,8 +1581,8 @@ public void test_getDPI() { Display display = new Display(); try { Point p = display.getDPI(); - assertTrue("horizontal DPI not greater than zero", p.x > 0); - assertTrue("vertical DPI not greater than zero", p.y > 0); + assertTrue(p.x > 0, "horizontal DPI not greater than zero" ); + assertTrue(p.y > 0, "vertical DPI not greater than zero"); } finally { display.dispose(); } @@ -1601,7 +1593,7 @@ public void test_getDepth() { Display display = new Display(); try { int d = display.getDepth(); - assertTrue("depth not greater than zero", d > 0); + assertTrue(d > 0, "depth not greater than zero" ); } finally { display.dispose(); } @@ -1612,7 +1604,7 @@ public void test_getFontListLjava_lang_StringZ() { try { FontData[] scalable = display.getFontList(null, true); FontData[] non_scalable = display.getFontList(null, false); - assertTrue("no fonts detected", (scalable.length + non_scalable.length) > 0); + assertTrue((scalable.length + non_scalable.length) > 0, "no fonts detected"); } finally { display.dispose(); } diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/PerformanceTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/PerformanceTests.java index c994ca2d566..70c1b24a19e 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/PerformanceTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/PerformanceTests.java @@ -13,15 +13,14 @@ *******************************************************************************/ package org.eclipse.swt.tests.junit.performance; - -import org.junit.runner.RunWith; -import org.junit.runners.Suite; +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; /** * Suite for running SWT performance test cases. */ -@RunWith(Suite.class) -@Suite.SuiteClasses({ +@Suite +@SelectClasses({ Test_situational.class }) public class PerformanceTests { diff --git a/tests/org.eclipse.swt.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.swt.tests/META-INF/MANIFEST.MF index a4279158da3..3d8ad820555 100644 --- a/tests/org.eclipse.swt.tests/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.swt.tests/META-INF/MANIFEST.MF @@ -6,7 +6,14 @@ Bundle-Version: 3.107.800.qualifier Bundle-Vendor: Eclipse.org Export-Package: org.eclipse.swt.tests.junit, org.eclipse.swt.tests.junit.performance -Require-Bundle: org.junit;bundle-version="4.12.0", +Require-Bundle: org.junit;bundle-version="4.13.2", + junit-vintage-engine;bundle-version="5.12.0", + junit-jupiter-engine;bundle-version="5.12.0", + junit-jupiter-params;bundle-version="5.12.0", + junit-jupiter-api;bundle-version="5.12.0", + junit-platform-suite-api;bundle-version="1.12.0", + junit-platform-suite-commons;bundle-version="1.12.0", + junit-platform-suite-engine;bundle-version="1.12.0", org.eclipse.swt;bundle-version="3.120.0", org.eclipse.test;bundle-version="3.6.200", org.eclipse.test.performance;bundle-version="3.13.0" diff --git a/tests/org.eclipse.swt.tests/pom.xml b/tests/org.eclipse.swt.tests/pom.xml index af55792939e..8f82d3c81b1 100644 --- a/tests/org.eclipse.swt.tests/pom.xml +++ b/tests/org.eclipse.swt.tests/pom.xml @@ -57,16 +57,36 @@ false + + + junit.jupiter.execution.parallel.enabled=false + junit.jupiter.execution.parallel.methods=false + junit.jupiter.execution.parallel.classes=false + junit.vintage.execution.parallel.enabled=false + junit.vintage.execution.parallel.methods=false + junit.vintage.execution.parallel.classes=false + + - - - org.apache.maven.surefire - surefire-junit47 - ${surefire.version} - - + + + org.apache.maven.surefire + surefire-junit-platform + ${surefire.version} + + + org.junit.vintage + junit-vintage-engine + 5.12.1 + + + org.junit.platform + junit-platform-suite-engine + 1.12.1 + +