This is an automated email from the ASF dual-hosted git repository.

Jackie-Jiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new c85b9c26843 Disallow JUnit test APIs in tests and drop the unused 
JUnit artifacts (#19675)
c85b9c26843 is described below

commit c85b9c268434a5568c05297aa1c3b265a6274afc
Author: Xiaotian (Jackie) Jiang <[email protected]>
AuthorDate: Sat Sep 26 00:21:00 2026 -0700

    Disallow JUnit test APIs in tests and drop the unused JUnit artifacts 
(#19675)
---
 config/checkstyle.xml                              |   5 +-
 kb/skills/review-testing.md                        |   3 +-
 pinot-common/pom.xml                               |  16 +-
 .../pinot/common/utils/NativeTestNGSuiteTest.java  | 230 ---------------------
 .../pinot/common/utils/OrderedTestNGSuiteTest.java |  86 ++++++++
 pinot-connectors/pinot-flink-connector/pom.xml     |   1 +
 pinot-controller/pom.xml                           |   1 +
 pinot-integration-test-base/pom.xml                |   1 +
 pinot-integration-tests/pom.xml                    |  12 +-
 .../pinot-stream-ingestion/pinot-kafka-3.0/pom.xml |   1 +
 pom.xml                                            |  76 +++----
 11 files changed, 137 insertions(+), 295 deletions(-)

diff --git a/config/checkstyle.xml b/config/checkstyle.xml
index f7beae7967f..e671f2a3c41 100644
--- a/config/checkstyle.xml
+++ b/config/checkstyle.xml
@@ -193,12 +193,13 @@
     <module name="IllegalImport">
       <property name="illegalClasses" value="com.google.common.io.Files"/>
     </module>
-    <!-- Use org.testng.Assert in tests -->
+    <!-- Tests are written with TestNG (org.testng.Assert). JUnit test APIs 
are banned; only the JUnit Platform
+         (org.junit.platform), which Surefire uses to run the TestNG suites, 
is allowed -->
     <module name="IllegalImport">
       <property name="regexp" value="true"/>
       <property name="illegalClasses"
                 value="org\.testng\.AssertJUnit.*,
-                org\.junit\.Assert.*,
+                org\.junit\.(?!platform\.).*,
                 org\.apache\.logging\.log4j\.core\.util\.Assert.*,
                 org\.locationtech\.jts\.util\.Assert.*"/>
     </module>
diff --git a/kb/skills/review-testing.md b/kb/skills/review-testing.md
index fd73eff230c..7f69d65f8a3 100644
--- a/kb/skills/review-testing.md
+++ b/kb/skills/review-testing.md
@@ -11,7 +11,8 @@ impact; pattern matches are investigation triggers, not 
findings or automatic se
 - Map changed behavior to existing and new tests. A production-file change 
without a test-file change is not itself a
   coverage gap; identify the behavior or failure mode that lacks coverage.
 - Find new tests and scan for:
-  - Test framework: TestNG (`import org.testng.annotations.Test`) unless the 
file uses JUnit consistently.
+  - Test framework: TestNG (`import org.testng.annotations.Test`); JUnit test 
APIs are not allowed. Only the JUnit
+    Platform suite API (`org.junit.platform.suite.api`) is used, to group 
TestNG tests.
   - Mocks: inspect whether mocks of `Dictionary`, `ForwardIndexReader`, or 
`NullValueVectorReader` omit semantics needed
     by the assertion. Prefer real instances when encoding or storage behavior 
matters (see PR 18189).
   - `assertTrue` / `assertFalse` on compound expressions — prefer 
`assertEquals` / `assertThrows`.
diff --git a/pinot-common/pom.xml b/pinot-common/pom.xml
index bcd233c5698..050a315bec7 100644
--- a/pinot-common/pom.xml
+++ b/pinot-common/pom.xml
@@ -366,26 +366,12 @@
       <artifactId>assertj-core</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-api</artifactId>
-      <scope>test</scope>
-    </dependency>
+    <!-- Suite API used by OrderedTestNGSuite (and its test) to read the 
declared class order -->
     <dependency>
       <groupId>org.junit.platform</groupId>
       <artifactId>junit-platform-suite</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.junit.platform</groupId>
-      <artifactId>junit-platform-launcher</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.junit.support</groupId>
-      <artifactId>testng-engine</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
   <profiles>
     <profile>
diff --git 
a/pinot-common/src/test/java/org/apache/pinot/common/utils/NativeTestNGSuiteTest.java
 
b/pinot-common/src/test/java/org/apache/pinot/common/utils/NativeTestNGSuiteTest.java
deleted file mode 100644
index 7e1b756fd4b..00000000000
--- 
a/pinot-common/src/test/java/org/apache/pinot/common/utils/NativeTestNGSuiteTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.pinot.common.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder;
-import org.junit.platform.launcher.core.LauncherFactory;
-import org.junit.platform.launcher.listeners.SummaryGeneratingListener;
-import org.junit.platform.launcher.listeners.TestExecutionSummary;
-import org.junit.platform.suite.api.ConfigurationParameter;
-import org.junit.platform.suite.api.IncludeEngines;
-import org.junit.platform.suite.api.SelectClasses;
-import org.junit.platform.suite.api.SelectMethod;
-import org.junit.platform.suite.api.Suite;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.DataProvider;
-
-import static 
org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
-import static org.junit.platform.launcher.EngineFilter.includeEngines;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-
-/// Verifies the native JUnit Platform suites used to group TestNG tests 
without XML suite files.
-/// Not thread-safe: the fixtures share lifecycle events and must execute 
sequentially.
-public class NativeTestNGSuiteTest {
-  private static final List<String> EVENTS = new ArrayList<>();
-
-  @BeforeEach
-  public void resetEvents() {
-    EVENTS.clear();
-  }
-
-  @Test
-  public void testSharedLifecycleAndClassOrder() {
-    TestExecutionSummary summary = execute(SharedSuite.class);
-    assertEquals(summary.getTotalFailureCount(), 0L, 
summary.getFailures().toString());
-    assertEquals(summary.getTestsSucceededCount(), 4L);
-    assertEquals(EVENTS, List.of("start", "first", "second", "third", "last", 
"finish"));
-  }
-
-  @Test
-  public void testReversedClassOrder() {
-    TestExecutionSummary summary = execute(ReversedSuite.class);
-    assertEquals(summary.getTotalFailureCount(), 0L, 
summary.getFailures().toString());
-    assertEquals(summary.getTestsSucceededCount(), 4L);
-    assertEquals(EVENTS, List.of("start", "last", "third", "second", "first", 
"finish"));
-  }
-
-  @Test
-  public void testExcludedGroups() {
-    TestExecutionSummary summary = execute(StatefulSuite.class);
-    assertEquals(summary.getTotalFailureCount(), 0L, 
summary.getFailures().toString());
-    assertEquals(summary.getTestsSucceededCount(), 1L);
-    assertEquals(EVENTS, List.of("start", "stateful", "finish"));
-  }
-
-  @Test
-  public void testIncludedGroupsAndRepeatedDataProviderInvocations() {
-    TestExecutionSummary summary = execute(StatelessSuite.class);
-    assertEquals(summary.getTotalFailureCount(), 0L, 
summary.getFailures().toString());
-    assertEquals(summary.getTestsSucceededCount(), 4L);
-    assertEquals(EVENTS, List.of("start", "data-1", "data-2", "data-1", 
"data-2", "finish"));
-  }
-
-  @Test
-  public void testMethodSelection() {
-    TestExecutionSummary summary = execute(MethodSuite.class);
-    assertEquals(summary.getTotalFailureCount(), 0L, 
summary.getFailures().toString());
-    assertEquals(summary.getTestsSucceededCount(), 1L);
-    assertEquals(EVENTS, List.of("start", "stateful", "finish"));
-  }
-
-  @Test
-  public void testFailurePropagationAndTeardown() {
-    TestExecutionSummary summary = execute(FailingSuite.class);
-    assertEquals(summary.getTestsFailedCount(), 1L);
-    assertEquals(summary.getTotalFailureCount(), 1L);
-    
assertTrue(summary.getFailures().get(0).getException().getMessage().contains("expected
 fixture failure"));
-    assertEquals(EVENTS, List.of("start", "finish"));
-  }
-
-  private static TestExecutionSummary execute(Class<?> suite) {
-    SummaryGeneratingListener listener = new SummaryGeneratingListener();
-    LauncherFactory.create().execute(LauncherDiscoveryRequestBuilder.request()
-        
.selectors(selectClass(suite)).filters(includeEngines("junit-platform-suite")).build(),
 listener);
-    return listener.getSummary();
-  }
-
-  /// Stateless suite declaration that preserves the shared lifecycle and 
class order.
-  @Suite
-  @IncludeEngines("testng")
-  @SelectClasses({ZFirstFixture.class, ASecondFixture.class, 
MThirdFixture.class, BLastFixture.class})
-  @ConfigurationParameter(key = "testng.listeners",
-      value = 
"org.apache.pinot.common.utils.NativeTestNGSuiteTest$SharedSuite")
-  public static class SharedSuite extends OrderedTestNGSuite {
-  }
-
-  /// Reverses the same four fixtures so incidental HashSet iteration cannot 
satisfy both order assertions.
-  @Suite
-  @IncludeEngines("testng")
-  @SelectClasses({BLastFixture.class, MThirdFixture.class, 
ASecondFixture.class, ZFirstFixture.class})
-  @ConfigurationParameter(key = "testng.listeners",
-      value = 
"org.apache.pinot.common.utils.NativeTestNGSuiteTest$ReversedSuite")
-  public static class ReversedSuite extends OrderedTestNGSuite {
-  }
-
-  /// Stateless suite declaration excluding the stateless group.
-  @Suite
-  @IncludeEngines("testng")
-  @SelectClasses(GroupedFixture.class)
-  @ConfigurationParameter(key = "testng.excludedGroups", value = "stateless")
-  public static class StatefulSuite {
-  }
-
-  /// Stateless suite declaration including only the stateless group.
-  @Suite
-  @IncludeEngines("testng")
-  @SelectClasses(GroupedFixture.class)
-  @ConfigurationParameter(key = "testng.groups", value = "stateless")
-  public static class StatelessSuite {
-  }
-
-  /// Stateless suite declaration selecting one method from a class.
-  @Suite
-  @IncludeEngines("testng")
-  @SelectMethod(type = GroupedFixture.class, name = "stateful")
-  public static class MethodSuite {
-  }
-
-  /// Stateless suite declaration containing an intentional failure.
-  @Suite
-  @IncludeEngines("testng")
-  @SelectClasses(FailingFixture.class)
-  public static class FailingSuite {
-  }
-
-  /// Shared lifecycle fixture; accesses the enclosing test's sequential event 
log.
-  public static class SharedFixture {
-    @BeforeSuite(alwaysRun = true)
-    public void start() {
-      assertTrue(EVENTS.isEmpty(), "Suite setup must run exactly once");
-      EVENTS.add("start");
-    }
-
-    @AfterSuite(alwaysRun = true)
-    public void finish() {
-      EVENTS.add("finish");
-    }
-  }
-
-  /// First sequential fixture sharing its suite's lifecycle.
-  public static class ZFirstFixture extends SharedFixture {
-    @org.testng.annotations.Test
-    public void first() {
-      EVENTS.add("first");
-    }
-  }
-
-  /// Second sequential fixture sharing its suite's lifecycle.
-  public static class ASecondFixture extends SharedFixture {
-    @org.testng.annotations.Test
-    public void second() {
-      EVENTS.add("second");
-    }
-  }
-
-  /// Sequential fixture verifying a third nonalphabetical class selection.
-  public static class MThirdFixture extends SharedFixture {
-    @org.testng.annotations.Test
-    public void third() {
-      EVENTS.add("third");
-    }
-  }
-
-  /// Sequential fixture that must execute last, like the Kafka shutdown 
scenario.
-  public static class BLastFixture extends SharedFixture {
-    @org.testng.annotations.Test
-    public void last() {
-      EVENTS.add("last");
-    }
-  }
-
-  /// Sequential fixture with distinct groups and repeated parameterized 
invocations.
-  public static class GroupedFixture extends SharedFixture {
-    @org.testng.annotations.Test
-    public void stateful() {
-      EVENTS.add("stateful");
-    }
-
-    @org.testng.annotations.Test(groups = "stateless", dataProvider = 
"values", invocationCount = 2)
-    public void stateless(int value) {
-      EVENTS.add("data-" + value);
-    }
-
-    @DataProvider
-    public Object[][] values() {
-      return new Object[][]{{1}, {2}};
-    }
-  }
-
-  /// Sequential fixture verifying that native test failures reach the 
platform launcher.
-  public static class FailingFixture extends SharedFixture {
-    @org.testng.annotations.Test
-    public void failure() {
-      fail("expected fixture failure");
-    }
-  }
-}
diff --git 
a/pinot-common/src/test/java/org/apache/pinot/common/utils/OrderedTestNGSuiteTest.java
 
b/pinot-common/src/test/java/org/apache/pinot/common/utils/OrderedTestNGSuiteTest.java
new file mode 100644
index 00000000000..caf0ca8df5d
--- /dev/null
+++ 
b/pinot-common/src/test/java/org/apache/pinot/common/utils/OrderedTestNGSuiteTest.java
@@ -0,0 +1,86 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.pinot.common.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.platform.suite.api.SelectClasses;
+import org.testng.annotations.Test;
+import org.testng.xml.XmlClass;
+import org.testng.xml.XmlSuite;
+import org.testng.xml.XmlTest;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+
+/// Verifies that [OrderedTestNGSuite] restores the class order declared with 
`@SelectClasses` on the suite.
+public class OrderedTestNGSuiteTest {
+
+  @Test
+  public void testRestoresDeclaredClassOrder() {
+    XmlTest xmlTest = xmlTest(Third.class, First.class, Second.class);
+    new DeclaredOrderSuite().alter(List.of(xmlTest.getSuite()));
+    assertOrder(xmlTest, First.class, Second.class, Third.class);
+  }
+
+  @Test
+  public void testFollowsTheAnnotationRatherThanClassNames() {
+    XmlTest xmlTest = xmlTest(First.class, Second.class, Third.class);
+    new ReversedOrderSuite().alter(List.of(xmlTest.getSuite()));
+    assertOrder(xmlTest, Third.class, Second.class, First.class);
+  }
+
+  private static XmlTest xmlTest(Class<?>... classes) {
+    XmlTest xmlTest = new XmlTest(new XmlSuite());
+    List<XmlClass> xmlClasses = new ArrayList<>();
+    for (Class<?> clazz : classes) {
+      xmlClasses.add(new XmlClass(clazz));
+    }
+    xmlTest.setXmlClasses(xmlClasses);
+    return xmlTest;
+  }
+
+  private static void assertOrder(XmlTest xmlTest, Class<?>... expected) {
+    List<XmlClass> xmlClasses = xmlTest.getXmlClasses();
+    assertEquals(xmlClasses.size(), expected.length);
+    for (int i = 0; i < expected.length; i++) {
+      assertEquals(xmlClasses.get(i).getSupportClass(), expected[i]);
+      assertEquals(xmlClasses.get(i).getIndex(), i);
+    }
+    assertTrue(xmlTest.getPreserveOrder());
+  }
+
+  @SelectClasses({First.class, Second.class, Third.class})
+  private static class DeclaredOrderSuite extends OrderedTestNGSuite {
+  }
+
+  @SelectClasses({Third.class, Second.class, First.class})
+  private static class ReversedOrderSuite extends OrderedTestNGSuite {
+  }
+
+  private static class First {
+  }
+
+  private static class Second {
+  }
+
+  private static class Third {
+  }
+}
diff --git a/pinot-connectors/pinot-flink-connector/pom.xml 
b/pinot-connectors/pinot-flink-connector/pom.xml
index c6c8bed05cd..b16cc4364bb 100644
--- a/pinot-connectors/pinot-flink-connector/pom.xml
+++ b/pinot-connectors/pinot-flink-connector/pom.xml
@@ -103,6 +103,7 @@
       <classifier>test</classifier>
       <scope>test</scope>
     </dependency>
+    <!-- Runtime dependency of the embedded Kafka broker 
(EmbeddedKafkaCluster); not a test framework -->
     <dependency>
       <groupId>org.junit.jupiter</groupId>
       <artifactId>junit-jupiter-api</artifactId>
diff --git a/pinot-controller/pom.xml b/pinot-controller/pom.xml
index 63047319a25..48540b370a1 100644
--- a/pinot-controller/pom.xml
+++ b/pinot-controller/pom.xml
@@ -108,6 +108,7 @@
       <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
+    <!-- @Suite classes under suites/ that split the controller tests into the 
stateful and stateless runs -->
     <dependency>
       <groupId>org.junit.platform</groupId>
       <artifactId>junit-platform-suite</artifactId>
diff --git a/pinot-integration-test-base/pom.xml 
b/pinot-integration-test-base/pom.xml
index dd8b9372ebd..47c6db88295 100644
--- a/pinot-integration-test-base/pom.xml
+++ b/pinot-integration-test-base/pom.xml
@@ -120,6 +120,7 @@
       <classifier>test</classifier>
       <scope>test</scope>
     </dependency>
+    <!-- Runtime dependency of the embedded Kafka broker 
(EmbeddedKafkaCluster); not a test framework -->
     <dependency>
       <groupId>org.junit.jupiter</groupId>
       <artifactId>junit-jupiter-api</artifactId>
diff --git a/pinot-integration-tests/pom.xml b/pinot-integration-tests/pom.xml
index 18a6d351fe5..a08cf92bf55 100644
--- a/pinot-integration-tests/pom.xml
+++ b/pinot-integration-tests/pom.xml
@@ -549,11 +549,6 @@
       <classifier>test</classifier>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-api</artifactId>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.apache.pinot</groupId>
       <artifactId>pinot-udf-test</artifactId>
@@ -626,6 +621,13 @@
       <artifactId>pinot-batch-ingestion-spark-3</artifactId>
       <scope>test</scope>
     </dependency>
+    <!-- Runtime dependency of the embedded Kafka broker 
(EmbeddedKafkaCluster); not a test framework -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- @Suite classes under suites/ that run the shared-cluster integration 
suites in one fork -->
     <dependency>
       <groupId>org.junit.platform</groupId>
       <artifactId>junit-platform-suite</artifactId>
diff --git a/pinot-plugins/pinot-stream-ingestion/pinot-kafka-3.0/pom.xml 
b/pinot-plugins/pinot-stream-ingestion/pinot-kafka-3.0/pom.xml
index 9fed722e622..9ad09b15ce1 100644
--- a/pinot-plugins/pinot-stream-ingestion/pinot-kafka-3.0/pom.xml
+++ b/pinot-plugins/pinot-stream-ingestion/pinot-kafka-3.0/pom.xml
@@ -100,6 +100,7 @@
       <classifier>test</classifier>
       <scope>test</scope>
     </dependency>
+    <!-- Runtime dependency of Kafka's KafkaClusterTestKit, which 
EmbeddedKafkaCluster starts; not a test framework -->
     <dependency>
       <groupId>org.junit.jupiter</groupId>
       <artifactId>junit-jupiter-api</artifactId>
diff --git a/pom.xml b/pom.xml
index e5b3311b58b..a8a5bd01f40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -358,7 +358,6 @@
     <!-- Test Libraries -->
     <testng.version>7.12.0</testng.version>
     <junit.version>6.1.3</junit.version>
-    <testng-engine.version>1.1.0</testng-engine.version>
     <mockito-core.version>5.23.0</mockito-core.version>
     <equalsverifier.version>3.19.4</equalsverifier.version>
     <testcontainers.version>2.0.5</testcontainers.version>
@@ -2033,39 +2032,12 @@
         <version>${testng.version}</version>
         <scope>test</scope>
       </dependency>
-
-      <dependency>
-        <groupId>org.junit.jupiter</groupId>
-        <artifactId>junit-jupiter-api</artifactId>
-        <version>${junit.version}</version>
-        <scope>test</scope>
-      </dependency>
-
-      <!-- mockito bom -->
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-bom</artifactId>
-        <version>${mockito-core.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
       <dependency>
         <groupId>nl.jqno.equalsverifier</groupId>
         <artifactId>equalsverifier</artifactId>
         <version>${equalsverifier.version}</version>
         <scope>test</scope>
       </dependency>
-
-      <!-- testcontainers bom -->
-      <dependency>
-        <groupId>org.testcontainers</groupId>
-        <artifactId>testcontainers-bom</artifactId>
-        <version>${testcontainers.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
       <dependency>
         <groupId>com.h2database</groupId>
         <artifactId>h2</artifactId>
@@ -2085,31 +2057,51 @@
         <scope>test</scope>
       </dependency>
 
-      <!-- assertj bom -->
+      <!-- Tests are written with TestNG only (checkstyle rejects JUnit test 
APIs). JUnit is present as test
+           infrastructure: Surefire no longer ships a native TestNG provider 
and runs TestNG through the JUnit
+           Platform. -->
+      <!-- Runtime dependency of Kafka's KafkaClusterTestKit, the embedded 
broker behind EmbeddedKafkaCluster: its
+           readiness wait asserts through JUnit. Declared by the modules that 
start the broker. -->
       <dependency>
-        <groupId>org.assertj</groupId>
-        <artifactId>assertj-bom</artifactId>
-        <version>${assertj.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
+        <groupId>org.junit.jupiter</groupId>
+        <artifactId>junit-jupiter-api</artifactId>
+        <version>${junit.version}</version>
+        <scope>test</scope>
       </dependency>
+      <!-- @Suite classes that group TestNG tests into one Surefire fork 
(shared @BeforeSuite cluster, class order,
+           TestNG groups) and OrderedTestNGSuite, which restores the declared 
class order. -->
       <dependency>
         <groupId>org.junit.platform</groupId>
         <artifactId>junit-platform-suite</artifactId>
         <version>${junit.version}</version>
         <scope>test</scope>
       </dependency>
+
+      <!-- mockito bom -->
       <dependency>
-        <groupId>org.junit.platform</groupId>
-        <artifactId>junit-platform-launcher</artifactId>
-        <version>${junit.version}</version>
-        <scope>test</scope>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-bom</artifactId>
+        <version>${mockito-core.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+
+      <!-- testcontainers bom -->
+      <dependency>
+        <groupId>org.testcontainers</groupId>
+        <artifactId>testcontainers-bom</artifactId>
+        <version>${testcontainers.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
       </dependency>
+
+      <!-- assertj bom -->
       <dependency>
-        <groupId>org.junit.support</groupId>
-        <artifactId>testng-engine</artifactId>
-        <version>${testng-engine.version}</version>
-        <scope>test</scope>
+        <groupId>org.assertj</groupId>
+        <artifactId>assertj-bom</artifactId>
+        <version>${assertj.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
       </dependency>
     </dependencies>
   </dependencyManagement>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to