You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2026/08/09 21:00:04 UTC

(maven-resolver-ant-tasks) branch agent/junit5-resolver-ant-tasks created (now 9fd2c04)

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

slachiewicz pushed a change to branch agent/junit5-resolver-ant-tasks
in repository https://gitbox.apache.org/repos/asf/maven-resolver-ant-tasks.git


      at 9fd2c04  Migrate the tests from JUnit 4 to JUnit 5

This branch includes the following new commits:

     new 9fd2c04  Migrate the tests from JUnit 4 to JUnit 5

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(maven-resolver-ant-tasks) 01/01: Migrate the tests from JUnit 4 to JUnit 5

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch agent/junit5-resolver-ant-tasks
in repository https://gitbox.apache.org/repos/asf/maven-resolver-ant-tasks.git

commit 9fd2c043a4428a3656566c0cb63b6c53a3c9b65d
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sun Aug 9 22:59:51 2026 +0200

    Migrate the tests from JUnit 4 to JUnit 5
    
    The suite was the last one in the resolver line still entirely on JUnit 4.
    Most of the change is the mechanical part of the OpenRewrite
    JUnit4to5Migration recipe: the annotations, the Assert -> Assertions move
    with its argument-order flip, and @Rule TemporaryFolder -> @TempDir.
    
    Two things the recipe cannot do, because they are specific to this project:
    
    build.xml runs this same suite through the Ant <junit> task, which only
    understands JUnit 3 and 4 - that is what the JUnit4TestAdapter suite()
    methods were for. Migrating the tests without touching it would have left
    the smoke test passing while silently running nothing, so it moves to
    <junitlauncher>. Its fork deliberately excludes the task's own JUnit
    platform libraries, which are older than the ones on cp.runtime.test and
    otherwise clash with them.
    
    AntBuildsTest and CreatePomRainyDayTest drove Ant's BuildFileRule, which
    ant-testutil only ships as a JUnit 4 TestRule and which drags junit:junit
    in at compile scope. AntBuildFileExtension replaces it with the same
    behaviour behind an AfterEachCallback, so ant-testutil and junit:junit
    both leave the tree.
    
    The examples under examples/example5 and examples/example6 stay on JUnit 4:
    they are Ant sample projects exercised by the run-ant-examples target, not
    part of this suite.
    
    Generated-by: Claude Opus 5 (1M context)
---
 build.xml                                          |  17 +-
 pom.xml                                            |  25 +--
 .../resolver/internal/ant/ActiveProfileTest.java   |   7 +-
 .../internal/ant/AntBuildFileExtension.java        | 229 +++++++++++++++++++++
 .../maven/resolver/internal/ant/AntBuildsTest.java |  23 +--
 .../resolver/internal/ant/AntRepoSysTest.java      |  25 +--
 .../maven/resolver/internal/ant/DeployTest.java    |   9 +-
 .../maven/resolver/internal/ant/InstallTest.java   |   7 +-
 .../internal/ant/ProjectWorkspaceReaderTest.java   |  19 +-
 .../resolver/internal/ant/ProxySelectorTest.java   |  33 +--
 .../maven/resolver/internal/ant/ReactorTest.java   |  13 +-
 .../maven/resolver/internal/ant/ResolveTest.java   |   7 +-
 .../maven/resolver/internal/ant/SettingsTest.java  |   7 +-
 .../internal/ant/tasks/CreatePomRainyDayTest.java  |  27 +--
 .../resolver/internal/ant/tasks/CreatePomTest.java |  95 ++++-----
 .../resolver/internal/ant/tasks/LayoutTest.java    |  16 +-
 .../ant/types/DependencyManagementTest.java        |  28 +--
 .../internal/ant/types/DependencyTest.java         |   9 +-
 .../resolver/internal/ant/types/ExclusionTest.java |   9 +-
 .../maven/resolver/internal/ant/types/PomTest.java |   9 +-
 .../internal/ant/types/SettingsReferenceTest.java  |  17 +-
 21 files changed, 384 insertions(+), 247 deletions(-)

diff --git a/build.xml b/build.xml
index c093e3f..49c4bdc 100644
--- a/build.xml
+++ b/build.xml
@@ -95,19 +95,24 @@
   </target>
 
   <target name="test" depends="test-compile">
-    <junit haltonfailure="true" fork="true" forkmode="once" outputtoformatters="false">
+    <mkdir dir="${build.dir}/test-reports"/>
+
+    <junitlauncher haltOnFailure="true" printSummary="true">
       <classpath>
         <pathelement location="${build.dir}/test-classes"/>
         <pathelement location="${build.dir}/classes"/>
         <path refid="cp.runtime.test"/>
       </classpath>
 
-      <formatter type="brief" usefile="false"/>
-
-      <batchtest>
+      <testclasses outputdir="${build.dir}/test-reports">
         <fileset dir="${build.dir}/test-classes" includes="**/*Test.class" excludes="**/AntBuildsTest*"/>
-      </batchtest>
-    </junit>
+
+        <listener type="legacy-brief" sendSysOut="true"/>
+
+        <!-- The JUnit platform comes from cp.runtime.test; the task's own copy is older and would clash. -->
+        <fork includeJUnitPlatformLibraries="false"/>
+      </testclasses>
+    </junitlauncher>
   </target>
 
   <target name="package" depends="test">
diff --git a/pom.xml b/pom.xml
index bbb371b..0994b58 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,7 +63,6 @@
     <antVersion>1.10.17</antVersion>
     <slf4jVersion>2.0.18</slf4jVersion>
     <javaVersion>8</javaVersion>
-    <junitVersion>4.13.2</junitVersion>
     <hamcrestVersion>3.0</hamcrestVersion>
     <maven.site.path>resolver-archives/resolver-ant-tasks-LATEST</maven.site.path>
     <checkstyle.violation.ignore>LineLength,MagicNumber</checkstyle.violation.ignore>
@@ -188,21 +187,14 @@
       <version>1.29</version>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junitVersion}</version>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter</artifactId>
       <scope>test</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>org.hamcrest</groupId>
-          <artifactId>hamcrest-core</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
+    <!-- The Ant <junitlauncher> task in build.xml runs these tests too, and needs the launcher on its classpath. -->
     <dependency>
-      <groupId>org.apache.ant</groupId>
-      <artifactId>ant-testutil</artifactId>
-      <version>${antVersion}</version>
+      <groupId>org.junit.platform</groupId>
+      <artifactId>junit-platform-launcher</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -322,14 +314,9 @@
               </dependency>
               <dependency>
                 <groupId>org.apache.ant</groupId>
-                <artifactId>ant-junit</artifactId>
+                <artifactId>ant-junitlauncher</artifactId>
                 <version>${antVersion}</version>
               </dependency>
-              <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>${junitVersion}</version>
-              </dependency>
             </dependencies>
             <executions>
               <execution>
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/ActiveProfileTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/ActiveProfileTest.java
index 0c67f16..f905ba7 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/ActiveProfileTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/ActiveProfileTest.java
@@ -18,17 +18,12 @@
  */
 package org.apache.maven.resolver.internal.ant;
 
-import junit.framework.JUnit4TestAdapter;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.notNullValue;
 
 public class ActiveProfileTest extends AntBuildsTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(ActiveProfileTest.class);
-    }
-
     @Test
     public void testActiveProfileNotDefinedInSettingsIsIgnored() {
         executeTarget("testActiveProfileNotDefinedInSettingsIsIgnored");
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildFileExtension.java b/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildFileExtension.java
new file mode 100644
index 0000000..ccf4211
--- /dev/null
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildFileExtension.java
@@ -0,0 +1,229 @@
+/*
+ * 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.maven.resolver.internal.ant;
+
+import java.io.File;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.MagicNames;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.ProjectHelper;
+import org.junit.jupiter.api.extension.AfterEachCallback;
+import org.junit.jupiter.api.extension.ExtensionContext;
+
+/**
+ * Executes Ant targets from a build file and captures the execution details, so tests can assert on them.
+ * <p>
+ * This is the JUnit 5 counterpart of {@code org.apache.tools.ant.BuildFileRule}, which Ant only ships as a
+ * JUnit 4 {@code TestRule} in {@code ant-testutil}. Register it with {@link
+ * org.junit.jupiter.api.extension.RegisterExtension} so that {@link #afterEach} runs the build file's
+ * {@code tearDown} target, the way the rule did.
+ */
+public class AntBuildFileExtension implements AfterEachCallback {
+
+    private Project project;
+
+    private StringBuffer logBuffer;
+
+    private StringBuffer fullLogBuffer;
+
+    private StringBuffer outputBuffer;
+
+    private StringBuffer errorBuffer;
+
+    /**
+     * Runs the configured project's {@code tearDown} target, if it declares one.
+     */
+    @Override
+    public void afterEach(ExtensionContext context) {
+        if (project == null) {
+            // configureProject has not been called - nothing to clean up
+            return;
+        }
+        String tearDown = "tearDown";
+        if (project.getTargets().containsKey(tearDown)) {
+            project.executeTarget(tearDown);
+        }
+    }
+
+    /**
+     * Sets up to run the named build file.
+     *
+     * @param filename the build file to run
+     * @param logLevel one of the {@code Project.MSG_*} levels; messages logged above it are discarded
+     */
+    public void configureProject(String filename, int logLevel) throws BuildException {
+        logBuffer = new StringBuffer();
+        fullLogBuffer = new StringBuffer();
+        project = new Project();
+        project.init();
+        File antFile = new File(filename);
+        project.setUserProperty(MagicNames.ANT_FILE, antFile.getAbsolutePath());
+        project.addBuildListener(new AntTestListener(logLevel));
+        ProjectHelper.configureProject(project, antFile);
+    }
+
+    /**
+     * Executes a target of the configured build file. Requires {@link #configureProject} to have been called.
+     *
+     * @param targetName the target to run
+     */
+    public void executeTarget(String targetName) {
+        outputBuffer = new StringBuffer();
+        PrintStream out = new PrintStream(new AntOutputStream(outputBuffer));
+        errorBuffer = new StringBuffer();
+        PrintStream err = new PrintStream(new AntOutputStream(errorBuffer));
+        logBuffer = new StringBuffer();
+        fullLogBuffer = new StringBuffer();
+
+        /* we synchronize to protect our custom output streams from being overridden
+         * by other tests executing targets concurrently. Ultimately this would only
+         * happen if we ran a multi-threaded test executing multiple targets at once, and
+         * this protection doesn't prevent a target from internally modifying the output
+         * stream during a test - but at least this scenario is fairly deterministic so
+         * easier to troubleshoot.
+         */
+        synchronized (System.out) {
+            PrintStream sysOut = System.out;
+            PrintStream sysErr = System.err;
+            sysOut.flush();
+            sysErr.flush();
+            try {
+                System.setOut(out);
+                System.setErr(err);
+                project.executeTarget(targetName);
+            } finally {
+                System.setOut(sysOut);
+                System.setErr(sysErr);
+            }
+        }
+    }
+
+    /**
+     * @return the INFO, WARN and ERROR messages logged by the last execution
+     */
+    public String getLog() {
+        return logBuffer.toString();
+    }
+
+    /**
+     * @return every message logged by the last execution, down to the configured log level
+     */
+    public String getFullLog() {
+        return fullLogBuffer.toString();
+    }
+
+    /**
+     * @return everything the last execution sent to {@code System.out}, with platform independent line breaks
+     */
+    public String getOutput() {
+        return cleanBuffer(outputBuffer);
+    }
+
+    /**
+     * @return everything the last execution sent to {@code System.err}, with platform independent line breaks
+     */
+    public String getError() {
+        return cleanBuffer(errorBuffer);
+    }
+
+    /**
+     * @return the project configured for the test
+     */
+    public Project getProject() {
+        return project;
+    }
+
+    private String cleanBuffer(StringBuffer buffer) {
+        StringBuilder cleanedBuffer = new StringBuilder();
+        for (int i = 0; i < buffer.length(); i++) {
+            char ch = buffer.charAt(i);
+            if (ch != '\r') {
+                cleanedBuffer.append(ch);
+            }
+        }
+        return cleanedBuffer.toString();
+    }
+
+    /**
+     * An output stream which saves contents to our buffer.
+     */
+    private static class AntOutputStream extends OutputStream {
+
+        private final StringBuffer buffer;
+
+        AntOutputStream(StringBuffer buffer) {
+            this.buffer = buffer;
+        }
+
+        @Override
+        public void write(int b) {
+            buffer.append((char) b);
+        }
+    }
+
+    /**
+     * Collects the logged messages, ignoring anything above the configured level.
+     */
+    private class AntTestListener implements BuildListener {
+
+        private final int logLevel;
+
+        AntTestListener(int logLevel) {
+            this.logLevel = logLevel;
+        }
+
+        @Override
+        public void buildStarted(BuildEvent event) {}
+
+        @Override
+        public void buildFinished(BuildEvent event) {}
+
+        @Override
+        public void targetStarted(BuildEvent event) {}
+
+        @Override
+        public void targetFinished(BuildEvent event) {}
+
+        @Override
+        public void taskStarted(BuildEvent event) {}
+
+        @Override
+        public void taskFinished(BuildEvent event) {}
+
+        @Override
+        public void messageLogged(BuildEvent event) {
+            if (event.getPriority() > logLevel) {
+                // ignore event
+                return;
+            }
+
+            if (event.getPriority() == Project.MSG_INFO
+                    || event.getPriority() == Project.MSG_WARN
+                    || event.getPriority() == Project.MSG_ERR) {
+                logBuffer.append(event.getMessage());
+            }
+            fullLogBuffer.append(event.getMessage());
+        }
+    }
+}
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildsTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildsTest.java
index 790cd98..70f2e95 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildsTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildsTest.java
@@ -22,15 +22,14 @@ import java.io.File;
 import java.io.PrintStream;
 
 import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.BuildFileRule;
 import org.apache.tools.ant.DefaultLogger;
 import org.apache.tools.ant.Project;
 import org.eclipse.aether.internal.test.util.TestFileUtils;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public abstract class AntBuildsTest {
 
@@ -40,7 +39,7 @@ public abstract class AntBuildsTest {
     protected File buildFile;
 
     static {
-        // Because BuildFileRule syncing on System.out, we need to tune this down for tests
+        // Because AntBuildFileExtension synchronizes on System.out, we need to tune this down for tests
         System.setProperty("aether.metadataResolver.threads", "1");
         System.setProperty("aether.dependencyCollector.bf.threads", "1");
         System.setProperty("aether.connector.basic.downstreamThreads", "1");
@@ -59,8 +58,8 @@ public abstract class AntBuildsTest {
         buildFile = projectFile;
     }
 
-    @Rule
-    public final BuildFileRule buildRule = new BuildFileRule();
+    @RegisterExtension
+    protected final AntBuildFileExtension buildRule = new AntBuildFileExtension();
 
     protected File projectDir;
 
@@ -80,7 +79,7 @@ public abstract class AntBuildsTest {
         // hook for subclasses to set further system properties for the project to pick up
     }
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         TestFileUtils.deleteFile(BUILD_DIR);
 
@@ -96,7 +95,7 @@ public abstract class AntBuildsTest {
         configureProject(buildFile.getAbsolutePath(), Project.MSG_VERBOSE);
     }
 
-    @After
+    @AfterEach
     public void tearDown() throws Exception {
         ProjectWorkspaceReader.dropInstance();
         TestFileUtils.deleteFile(BUILD_DIR);
@@ -120,8 +119,8 @@ public abstract class AntBuildsTest {
     protected void assertLogContaining(String substring) {
         String realLog = getLog();
         assertTrue(
-                "expecting log to contain \"" + substring + "\" log was \"" + realLog + "\"",
-                realLog.contains(substring));
+                realLog.contains(substring),
+                "expecting log to contain \"" + substring + "\" log was \"" + realLog + "\"");
     }
 
     protected void executeTarget(String targetName) {
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/AntRepoSysTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/AntRepoSysTest.java
index 125b8c5..09608c4 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/AntRepoSysTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/AntRepoSysTest.java
@@ -20,27 +20,22 @@ package org.apache.maven.resolver.internal.ant;
 
 import java.io.File;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Task;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
 import org.eclipse.aether.util.graph.manager.TransitiveDependencyManager;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class AntRepoSysTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(AntRepoSysTest.class);
-    }
-
     private Project project;
 
     private Task task;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         project = new Project();
         project.setProperty("user.home", System.getProperty("user.home"));
@@ -65,8 +60,8 @@ public class AntRepoSysTest {
     public void testDependencyManagerIsClassicByDefault() {
         try (RepositorySystemSession.CloseableSession session = newSession()) {
             assertTrue(
-                    "expected the classic dependency manager, got " + session.getDependencyManager(),
-                    session.getDependencyManager() instanceof ClassicDependencyManager);
+                    session.getDependencyManager() instanceof ClassicDependencyManager,
+                    "expected the classic dependency manager, got " + session.getDependencyManager());
         }
     }
 
@@ -76,8 +71,8 @@ public class AntRepoSysTest {
 
         try (RepositorySystemSession.CloseableSession session = newSession()) {
             assertTrue(
-                    "expected the transitive dependency manager, got " + session.getDependencyManager(),
-                    session.getDependencyManager() instanceof TransitiveDependencyManager);
+                    session.getDependencyManager() instanceof TransitiveDependencyManager,
+                    "expected the transitive dependency manager, got " + session.getDependencyManager());
         }
     }
 
@@ -87,8 +82,8 @@ public class AntRepoSysTest {
 
         try (RepositorySystemSession.CloseableSession session = newSession()) {
             assertTrue(
-                    "expected the classic dependency manager, got " + session.getDependencyManager(),
-                    session.getDependencyManager() instanceof ClassicDependencyManager);
+                    session.getDependencyManager() instanceof ClassicDependencyManager,
+                    "expected the classic dependency manager, got " + session.getDependencyManager());
         }
     }
 }
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/DeployTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/DeployTest.java
index 74b38ef..e72e1e8 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/DeployTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/DeployTest.java
@@ -21,9 +21,8 @@ package org.apache.maven.resolver.internal.ant;
 import java.io.File;
 import java.util.Arrays;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.tools.ant.BuildException;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.allOf;
@@ -31,17 +30,13 @@ import static org.hamcrest.Matchers.endsWith;
 import static org.hamcrest.Matchers.greaterThanOrEqualTo;
 import static org.hamcrest.Matchers.hasItemInArray;
 import static org.hamcrest.Matchers.lessThanOrEqualTo;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /*
  * still missing:
  * - deploy snapshots/releases into correct repos
  */
 public class DeployTest extends AntBuildsTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(DeployTest.class);
-    }
-
     @Test
     public void testDeployGlobalPom() {
         long min = System.currentTimeMillis();
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/InstallTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/InstallTest.java
index 3fcbc5d..a9a4525 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/InstallTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/InstallTest.java
@@ -21,8 +21,7 @@ package org.apache.maven.resolver.internal.ant;
 import java.io.File;
 import java.io.IOException;
 
-import junit.framework.JUnit4TestAdapter;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.allOf;
@@ -30,10 +29,6 @@ import static org.hamcrest.Matchers.greaterThanOrEqualTo;
 import static org.hamcrest.Matchers.lessThanOrEqualTo;
 
 public class InstallTest extends AntBuildsTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(InstallTest.class);
-    }
-
     @Test
     public void testInstallGlobalPom() {
         executeTarget("testInstallGlobalPom");
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/ProjectWorkspaceReaderTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/ProjectWorkspaceReaderTest.java
index a3746a8..c1d6380 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/ProjectWorkspaceReaderTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/ProjectWorkspaceReaderTest.java
@@ -20,30 +20,25 @@ package org.apache.maven.resolver.internal.ant;
 
 import java.io.File;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.maven.resolver.internal.ant.types.Pom;
 import org.apache.tools.ant.Project;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.artifact.DefaultArtifact;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
 public class ProjectWorkspaceReaderTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(ProjectWorkspaceReaderTest.class);
-    }
-
     private ProjectWorkspaceReader reader;
 
     private Project project;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         this.reader = new ProjectWorkspaceReader();
 
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/ProxySelectorTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/ProxySelectorTest.java
index 20c2046..c2cf657 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/ProxySelectorTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/ProxySelectorTest.java
@@ -19,38 +19,33 @@
 package org.apache.maven.resolver.internal.ant;
 
 import java.io.File;
+import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Task;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.Proxy;
 import org.eclipse.aether.repository.ProxySelector;
 import org.eclipse.aether.repository.RemoteRepository;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 public class ProxySelectorTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(ProxySelectorTest.class);
-    }
-
-    @Rule
-    public final TemporaryFolder folder = new TemporaryFolder();
+    @TempDir
+    File folder;
 
     private Project project;
 
     private Task task;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         project = new Project();
         project.setProperty("user.home", System.getProperty("user.home"));
@@ -129,7 +124,7 @@ public class ProxySelectorTest {
     }
 
     private File writeSettings(String... proxyElements) throws Exception {
-        File file = folder.newFile("settings.xml");
+        File file = newFile(folder, "settings.xml");
         StringBuilder content = new StringBuilder();
         content.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
         content.append("<settings>\n");
@@ -142,4 +137,10 @@ public class ProxySelectorTest {
         Files.write(file.toPath(), content.toString().getBytes(StandardCharsets.UTF_8));
         return file;
     }
+
+    private static File newFile(File parent, String child) throws IOException {
+        File result = new File(parent, child);
+        result.createNewFile();
+        return result;
+    }
 }
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/ReactorTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/ReactorTest.java
index d820777..06e2dca 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/ReactorTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/ReactorTest.java
@@ -21,20 +21,15 @@ package org.apache.maven.resolver.internal.ant;
 import java.io.File;
 import java.io.IOException;
 
-import junit.framework.JUnit4TestAdapter;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.artifact.DefaultArtifact;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 public class ReactorTest extends AntBuildsTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(ReactorTest.class);
-    }
-
     private Artifact artifact(String coords) {
         return new DefaultArtifact(coords);
     }
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/ResolveTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/ResolveTest.java
index 3bf9418..134a3a0 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/ResolveTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/ResolveTest.java
@@ -24,11 +24,10 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.Map;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.tools.ant.types.Path;
 import org.apache.tools.ant.types.ResourceCollection;
 import org.apache.tools.ant.types.resources.FileResource;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.allOf;
@@ -42,10 +41,6 @@ import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
 
 public class ResolveTest extends AntBuildsTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(ResolveTest.class);
-    }
-
     @Test
     public void testResolveGlobalPom() {
         executeTarget("testResolveGlobalPom");
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/SettingsTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/SettingsTest.java
index 597e3ef..23d060d 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/SettingsTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/SettingsTest.java
@@ -21,18 +21,13 @@ package org.apache.maven.resolver.internal.ant;
 import java.io.File;
 import java.io.IOException;
 
-import junit.framework.JUnit4TestAdapter;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.endsWith;
 import static org.hamcrest.Matchers.equalTo;
 
 public class SettingsTest extends AntBuildsTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(SettingsTest.class);
-    }
-
     @Test
     public void testUserSettings() {
         executeTarget("testUserSettings");
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/tasks/CreatePomRainyDayTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/tasks/CreatePomRainyDayTest.java
index fead191..c932ce6 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/tasks/CreatePomRainyDayTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/tasks/CreatePomRainyDayTest.java
@@ -21,23 +21,18 @@ package org.apache.maven.resolver.internal.ant.tasks;
 import java.io.File;
 import java.io.PrintStream;
 
-import junit.framework.JUnit4TestAdapter;
+import org.apache.maven.resolver.internal.ant.AntBuildFileExtension;
 import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.BuildFileRule;
 import org.apache.tools.ant.DefaultLogger;
 import org.apache.tools.ant.Project;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 public class CreatePomRainyDayTest {
 
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(CreatePomRainyDayTest.class);
-    }
-
-    @Rule
-    public final BuildFileRule buildRule = new BuildFileRule();
+    @RegisterExtension
+    final AntBuildFileExtension buildRule = new AntBuildFileExtension();
 
     public void configureProject(String filename, int logLevel) throws BuildException {
         buildRule.configureProject(filename, logLevel);
@@ -63,13 +58,13 @@ public class CreatePomRainyDayTest {
     public void testNoGroupId() {
         configureProject("target/test-classes/ant/createPom/noGroupId.xml", Project.MSG_VERBOSE);
         // Expect a BuildException when trying to execute the target
-        Assert.assertThrows(BuildException.class, () -> buildRule.executeTarget("setup"));
+        Assertions.assertThrows(BuildException.class, () -> buildRule.executeTarget("setup"));
 
         // This should work since the setSkipPomRegistration property is set to true
         configureProject("target/test-classes/ant/createPom/noGroupIdSkipRegistration.xml", Project.MSG_VERBOSE);
         buildRule.executeTarget("setup");
         File pomFile = getPomFile();
-        Assert.assertTrue("The pom file should have been created at " + pomFile, pomFile.exists());
+        Assertions.assertTrue(pomFile.exists(), "The pom file should have been created at " + pomFile);
     }
 
     /**
@@ -81,19 +76,19 @@ public class CreatePomRainyDayTest {
     public void testNoArtifactId() {
         configureProject("target/test-classes/ant/createPom/noArtifactId.xml", Project.MSG_VERBOSE);
         // Expect a BuildException when trying to execute the target
-        Assert.assertThrows(BuildException.class, () -> buildRule.executeTarget("setup"));
+        Assertions.assertThrows(BuildException.class, () -> buildRule.executeTarget("setup"));
 
         // This should work since the setSkipPomRegistration property is set to true
         configureProject("target/test-classes/ant/createPom/noArtifactIdSkipRegistration.xml", Project.MSG_VERBOSE);
         buildRule.executeTarget("setup");
         File pomFile = getPomFile();
-        Assert.assertTrue("The pom file should have been created at " + pomFile, pomFile.exists());
+        Assertions.assertTrue(pomFile.exists(), "The pom file should have been created at " + pomFile);
     }
 
     private File getPomFile() {
         Project project = buildRule.getProject();
         String pomPath = project.replaceProperties(project.getProperty("pomFile"));
-        Assert.assertNotNull("pomFile property should not be null", pomPath);
+        Assertions.assertNotNull(pomPath, "pomFile property should not be null");
         return new File(pomPath);
     }
 }
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/tasks/CreatePomTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/tasks/CreatePomTest.java
index 012159d..3cba74f 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/tasks/CreatePomTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/tasks/CreatePomTest.java
@@ -24,7 +24,6 @@ import java.io.IOException;
 import java.io.Reader;
 import java.util.List;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Developer;
@@ -35,14 +34,10 @@ import org.apache.maven.model.Scm;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.resolver.internal.ant.AntBuildsTest;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
 
 public class CreatePomTest extends AntBuildsTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(CreatePomTest.class);
-    }
-
     public CreatePomTest() {
         super(new File("target/test-classes/ant/DependencyManagement/build.xml"));
     }
@@ -52,70 +47,66 @@ public class CreatePomTest extends AntBuildsTest {
         executeTarget("setup");
         String pomPath = getProject().getProperty("pomFile");
 
-        Assert.assertNotNull("pomFile property should not be null", pomPath);
+        Assertions.assertNotNull(pomPath, "pomFile property should not be null");
         File pomFile = new File(pomPath);
 
         Model model = readPomFile(pomFile);
-        Assert.assertNotNull("Model should not be null", model);
-        Assert.assertEquals("modelVersion", "4.0.0", model.getModelVersion());
-        Assert.assertEquals("groupId", "test.resolver.dm", model.getGroupId());
-        Assert.assertEquals("artifactId", "dependency-management", model.getArtifactId());
-        Assert.assertEquals("version", "1.0-SNAPSHOT", model.getVersion());
+        Assertions.assertNotNull(model, "Model should not be null");
+        Assertions.assertEquals("4.0.0", model.getModelVersion(), "modelVersion");
+        Assertions.assertEquals("test.resolver.dm", model.getGroupId(), "groupId");
+        Assertions.assertEquals("dependency-management", model.getArtifactId(), "artifactId");
+        Assertions.assertEquals("1.0-SNAPSHOT", model.getVersion(), "version");
         DependencyManagement dm = model.getDependencyManagement();
         List<Dependency> dependencies = dm.getDependencies();
-        Assert.assertEquals("dependencies should have 2 entries", 2, dependencies.size());
+        Assertions.assertEquals(2, dependencies.size(), "dependencies should have 2 entries");
         Dependency matrix = dependencies.get(0);
-        Assert.assertEquals("matrix dependency groupId", "se.alipsa.matrix", matrix.getGroupId());
-        Assert.assertEquals("matrix dependency artifactId", "matrix-bom", matrix.getArtifactId());
-        Assert.assertEquals("matrix dependency version", "2.2.0", matrix.getVersion());
-        Assert.assertEquals("matrix dependency type", "pom", matrix.getType());
-        Assert.assertEquals("matrix dependency scope", "import", matrix.getScope());
+        Assertions.assertEquals("se.alipsa.matrix", matrix.getGroupId(), "matrix dependency groupId");
+        Assertions.assertEquals("matrix-bom", matrix.getArtifactId(), "matrix dependency artifactId");
+        Assertions.assertEquals("2.2.0", matrix.getVersion(), "matrix dependency version");
+        Assertions.assertEquals("pom", matrix.getType(), "matrix dependency type");
+        Assertions.assertEquals("import", matrix.getScope(), "matrix dependency scope");
 
         License license = model.getLicenses().get(0);
-        Assert.assertEquals("license name should match", "The Apache Software License, Version 2.0", license.getName());
-        Assert.assertEquals(
-                "license url should match", "http://www.apache.org/licenses/LICENSE-2.0.txt", license.getUrl());
-        Assert.assertEquals("license distribution should match", "repo", license.getDistribution());
+        Assertions.assertEquals(
+                "The Apache Software License, Version 2.0", license.getName(), "license name should match");
+        Assertions.assertEquals(
+                "http://www.apache.org/licenses/LICENSE-2.0.txt", license.getUrl(), "license url should match");
+        Assertions.assertEquals("repo", license.getDistribution(), "license distribution should match");
 
         Repository repo = model.getRepositories().get(0);
-        Assert.assertEquals("repository id should match", "my-internal-site", repo.getId());
-        Assert.assertEquals("repository url should match", "https://myserver/repo", repo.getUrl());
-        Assert.assertEquals("repository layout should match", "default", repo.getLayout());
-        Assert.assertTrue(
-                "repository snapshots should be enabled", repo.getSnapshots().isEnabled());
-        Assert.assertTrue(
-                "repository releases should be enabled", repo.getReleases().isEnabled());
+        Assertions.assertEquals("my-internal-site", repo.getId(), "repository id should match");
+        Assertions.assertEquals("https://myserver/repo", repo.getUrl(), "repository url should match");
+        Assertions.assertEquals("default", repo.getLayout(), "repository layout should match");
+        Assertions.assertTrue(repo.getSnapshots().isEnabled(), "repository snapshots should be enabled");
+        Assertions.assertTrue(repo.getReleases().isEnabled(), "repository releases should be enabled");
 
         List<Developer> developers = model.getDevelopers();
-        Assert.assertEquals("developers should have 1 entry", 1, developers.size());
+        Assertions.assertEquals(1, developers.size(), "developers should have 1 entry");
         Developer developer = developers.get(0);
-        Assert.assertEquals("developer id should match", "jdoe", developer.getId());
-        Assert.assertEquals("developer name should match", "John Doe", developer.getName());
-        Assert.assertEquals("developer email should match", "jdoe@example.com", developer.getEmail());
-        Assert.assertEquals("developer url should match", "http://www.example.com/jdoe", developer.getUrl());
-        Assert.assertEquals("developer organization should match", "ACME", developer.getOrganization());
-        Assert.assertEquals(
-                "developers organizationUrl should match", "http://www.example.com", developer.getOrganizationUrl());
-        Assert.assertEquals(
-                "developer should have 2 roles", 2, developer.getRoles().size());
-        Assert.assertTrue(
-                "developer should have an architect role", developer.getRoles().contains("architect"));
-        Assert.assertTrue(
-                "developer should have a developer role", developer.getRoles().contains("developer"));
-        Assert.assertEquals("developer timezone should match", "America/New_York", developer.getTimezone());
+        Assertions.assertEquals("jdoe", developer.getId(), "developer id should match");
+        Assertions.assertEquals("John Doe", developer.getName(), "developer name should match");
+        Assertions.assertEquals("jdoe@example.com", developer.getEmail(), "developer email should match");
+        Assertions.assertEquals("http://www.example.com/jdoe", developer.getUrl(), "developer url should match");
+        Assertions.assertEquals("ACME", developer.getOrganization(), "developer organization should match");
+        Assertions.assertEquals(
+                "http://www.example.com", developer.getOrganizationUrl(), "developers organizationUrl should match");
+        Assertions.assertEquals(2, developer.getRoles().size(), "developer should have 2 roles");
+        Assertions.assertTrue(developer.getRoles().contains("architect"), "developer should have an architect role");
+        Assertions.assertTrue(developer.getRoles().contains("developer"), "developer should have a developer role");
+        Assertions.assertEquals("America/New_York", developer.getTimezone(), "developer timezone should match");
 
         Scm scm = model.getScm();
-        Assert.assertEquals(
-                "Scm connection should match", "scm:svn:http://127.0.0.1/svn/my-project", scm.getConnection());
-        Assert.assertEquals(
-                "Scm developerConnection should match",
+        Assertions.assertEquals(
+                "scm:svn:http://127.0.0.1/svn/my-project", scm.getConnection(), "Scm connection should match");
+        Assertions.assertEquals(
                 "scm:svn:https://127.0.0.1/svn/my-project",
-                scm.getDeveloperConnection());
-        Assert.assertEquals("Scm url should match", "http://127.0.0.1/websvn/my-project", scm.getUrl());
+                scm.getDeveloperConnection(),
+                "Scm developerConnection should match");
+        Assertions.assertEquals("http://127.0.0.1/websvn/my-project", scm.getUrl(), "Scm url should match");
     }
 
     public static Model readPomFile(File pomFile) throws IOException, XmlPullParserException {
-        Assert.assertTrue("pomFile (" + pomFile + ") should exist", pomFile.exists());
+        Assertions.assertTrue(pomFile.exists(), "pomFile (" + pomFile + ") should exist");
         try (Reader reader = new FileReader(pomFile)) {
             MavenXpp3Reader pomReader = new MavenXpp3Reader();
             return pomReader.read(reader);
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/tasks/LayoutTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/tasks/LayoutTest.java
index c43450c..24c1237 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/tasks/LayoutTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/tasks/LayoutTest.java
@@ -18,23 +18,21 @@
  */
 package org.apache.maven.resolver.internal.ant.tasks;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.tools.ant.BuildException;
 import org.eclipse.aether.artifact.DefaultArtifact;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 /**
  */
 public class LayoutTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(LayoutTest.class);
-    }
-
-    @Test(expected = BuildException.class)
+    @Test
     public void testUnknownVariable() {
-        new Layout("{unknown}");
+        assertThrows(BuildException.class, () -> {
+            new Layout("{unknown}");
+        });
     }
 
     @Test
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyManagementTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyManagementTest.java
index 8c72c56..ccc61cf 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyManagementTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyManagementTest.java
@@ -20,18 +20,13 @@ package org.apache.maven.resolver.internal.ant.types;
 
 import java.io.File;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.maven.resolver.internal.ant.AntBuildsTest;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class DependencyManagementTest extends AntBuildsTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(DependencyManagementTest.class);
-    }
-
     public DependencyManagementTest() {
         super(new File("src/test/resources/ant/DependencyManagement/build.xml"));
     }
@@ -40,17 +35,14 @@ public class DependencyManagementTest extends AntBuildsTest {
     public void testDependencyManagement() {
         executeTarget("init");
         DependencyManagement dm = getProject().getReference("dm");
-        assertNotNull("Dependency management with id 'dm' should exists", dm);
-        assertEquals(
-                "Should have 2 dependencies defined",
-                2,
-                dm.getDependencies().getDependencyContainers().size());
+        assertNotNull(dm, "Dependency management with id 'dm' should exists");
+        assertEquals(2, dm.getDependencies().getDependencyContainers().size(), "Should have 2 dependencies defined");
         Dependency dep1 =
                 (Dependency) dm.getDependencies().getDependencyContainers().get(0);
-        assertEquals("groupId should match", "se.alipsa.matrix", dep1.getGroupId());
-        assertEquals("artifactId should match", "matrix-bom", dep1.getArtifactId());
-        assertEquals("version should match", "2.2.0", dep1.getVersion());
-        assertEquals("type should match", "pom", dep1.getType());
-        assertEquals("scope should match", "import", dep1.getScope());
+        assertEquals("se.alipsa.matrix", dep1.getGroupId(), "groupId should match");
+        assertEquals("matrix-bom", dep1.getArtifactId(), "artifactId should match");
+        assertEquals("2.2.0", dep1.getVersion(), "version should match");
+        assertEquals("pom", dep1.getType(), "type should match");
+        assertEquals("import", dep1.getScope(), "scope should match");
     }
 }
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyTest.java
index f97b560..a0dcc44 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/types/DependencyTest.java
@@ -18,18 +18,13 @@
  */
 package org.apache.maven.resolver.internal.ant.types;
 
-import junit.framework.JUnit4TestAdapter;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  */
 public class DependencyTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(DependencyTest.class);
-    }
-
     @Test
     public void testSetCoordsGidAidVer() {
         Dependency dep = new Dependency();
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/types/ExclusionTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/types/ExclusionTest.java
index 7988fbc..f8520b0 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/types/ExclusionTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/types/ExclusionTest.java
@@ -18,18 +18,13 @@
  */
 package org.apache.maven.resolver.internal.ant.types;
 
-import junit.framework.JUnit4TestAdapter;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  */
 public class ExclusionTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(ExclusionTest.class);
-    }
-
     @Test
     public void testSetCoordsGid() {
         Exclusion ex = new Exclusion();
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/types/PomTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/types/PomTest.java
index 6758fe4..e6b5c01 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/types/PomTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/types/PomTest.java
@@ -18,18 +18,13 @@
  */
 package org.apache.maven.resolver.internal.ant.types;
 
-import junit.framework.JUnit4TestAdapter;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  */
 public class PomTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(PomTest.class);
-    }
-
     @Test
     public void testSetCoordsGid() {
         Pom pom = new Pom();
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/types/SettingsReferenceTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/types/SettingsReferenceTest.java
index 63d531a..f6a9d61 100644
--- a/src/test/java/org/apache/maven/resolver/internal/ant/types/SettingsReferenceTest.java
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/types/SettingsReferenceTest.java
@@ -20,19 +20,14 @@ package org.apache.maven.resolver.internal.ant.types;
 
 import java.io.File;
 
-import junit.framework.JUnit4TestAdapter;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.types.Reference;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class SettingsReferenceTest {
-    public static junit.framework.Test suite() {
-        return new JUnit4TestAdapter(SettingsReferenceTest.class);
-    }
-
     private Project project;
 
     private Settings referenced;
@@ -41,7 +36,7 @@ public class SettingsReferenceTest {
 
     private File globalFile;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         project = new Project();
         userFile = new File("user-settings.xml");
@@ -65,7 +60,7 @@ public class SettingsReferenceTest {
         ref.setProject(project);
         ref.setRefid(new Reference(project, "settings-id"));
 
-        assertEquals("global file should come from the referenced settings", globalFile, ref.getGlobalFile());
+        assertEquals(globalFile, ref.getGlobalFile(), "global file should come from the referenced settings");
     }
 
     /**
@@ -77,6 +72,6 @@ public class SettingsReferenceTest {
         ref.setProject(project);
         ref.setRefid(new Reference(project, "settings-id"));
 
-        assertEquals("user file should come from the referenced settings", userFile, ref.getFile());
+        assertEquals(userFile, ref.getFile(), "user file should come from the referenced settings");
     }
 }