You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/03/30 11:45:10 UTC

[maven-surefire] branch master updated: [SUREFIRE-2024] Replace testng-junit5 by testng-engine (#500)

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

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git


The following commit(s) were added to refs/heads/master by this push:
     new 92b9061  [SUREFIRE-2024] Replace testng-junit5 by testng-engine (#500)
92b9061 is described below

commit 92b90617b723b3a367f3ecd7b48c285f70e5d09b
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Wed Mar 30 13:45:05 2022 +0200

    [SUREFIRE-2024] Replace testng-junit5 by testng-engine (#500)
---
 .../src/site/apt/examples/junit-platform.apt.vm    |  27 ++--
 .../surefire/its/jiras/Surefire1787JUnit5IT.java   |  13 +-
 .../src/test/resources/junit5-testng/pom.xml       | 157 +++++++++++++--------
 .../src/test/java/pkg/JUnit5Test.java              |   2 +-
 4 files changed, 117 insertions(+), 82 deletions(-)

diff --git a/maven-surefire-plugin/src/site/apt/examples/junit-platform.apt.vm b/maven-surefire-plugin/src/site/apt/examples/junit-platform.apt.vm
index 5c02c6d..26e5f1b 100644
--- a/maven-surefire-plugin/src/site/apt/examples/junit-platform.apt.vm
+++ b/maven-surefire-plugin/src/site/apt/examples/junit-platform.apt.vm
@@ -349,44 +349,33 @@ Using JUnit 5 Platform
 </profile>
 +---+
 
-** How to run TestNG tests within Jupiter engine
+** How to run TestNG tests within the JUnit Platform
 
   You can run TestNG tests combined with JUnit5 tests.
 
   For more information see this
-  {{{https://github.com/apache/maven-surefire/tree/master/surefire-its/src/test/resources/junit5-testng}example}}.
+  {{{https://github.com/apache/maven-surefire/tree/master/surefire-its/src/test/resources/junit5-testng}example}}
+  and {{{https://github.com/junit-team/testng-engine}TestNG Engine for the JUnit Platform}}.
 
 +---+
 <dependencies>
     <dependency>
         <groupId>org.testng</groupId>
         <artifactId>testng</artifactId>
-        <version>7.1.0</version>
+        <version>7.4.0</version>
         <scope>test</scope>
     </dependency>
     <dependency>
-        <groupId>com.github.testng-team</groupId>
-        <artifactId>testng-junit5</artifactId>
-        <version>0.0.1</version>
-        <scope>test</scope>
-        <exclusions>
-            <exclusion>
-                <groupId>org.junit.platform</groupId>
-                <artifactId>junit-platform-engine</artifactId>
-            </exclusion>
-        </exclusions>
-    </dependency>
-    <dependency>
-        <groupId>org.junit.jupiter</groupId>
-        <artifactId>junit-jupiter-api</artifactId>
-        <version>5.6.2</version>
+        <groupId>org.junit.support</groupId>
+        <artifactId>testng-engine</artifactId>
+        <version>1.0.1</version>
         <scope>test</scope>
     </dependency>
 </dependencies>
 +---+
 
   The Maven does not take any responsibility for broken compatibilities in this case and the responsibility for
-  the dependency <<<com.github.testng-team:testng-junit5>>>.
+  the dependency <<<org.junit.support:testng-engine>>>.
 
 ** JUnit Runner
 
diff --git a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1787JUnit5IT.java b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1787JUnit5IT.java
index f64ad70..ede3d11 100644
--- a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1787JUnit5IT.java
+++ b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1787JUnit5IT.java
@@ -97,6 +97,18 @@ public class Surefire1787JUnit5IT extends SurefireJUnit4IntegrationTestCase
     }
 
     @Test
+    public void testNg()
+    {
+        unpack( "junit5-testng" )
+            .activateProfile( "testng-only" )
+            .executeTest()
+            .verifyErrorFree( 1 )
+            .verifyTextInLog( "Running pkg.TestNGTest" )
+            .verifyTextInLog(
+                "Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider" );
+    }
+
+    @Test
     public void testNgWithJupiterApi()
     {
         unpack( "junit5-testng" )
@@ -107,7 +119,6 @@ public class Surefire1787JUnit5IT extends SurefireJUnit4IntegrationTestCase
             .verifyTextInLog( "Running pkg.TestNGTest" )
             .verifyTextInLog(
                 "Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider" );
-
     }
 
     @Test
diff --git a/surefire-its/src/test/resources/junit5-testng/pom.xml b/surefire-its/src/test/resources/junit5-testng/pom.xml
index c18e464..fd38310 100644
--- a/surefire-its/src/test/resources/junit5-testng/pom.xml
+++ b/surefire-its/src/test/resources/junit5-testng/pom.xml
@@ -21,74 +21,109 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
+  <modelVersion>4.0.0</modelVersion>
 
-    <groupId>org.example</groupId>
-    <artifactId>testng-junit5</artifactId>
-    <version>1.0-SNAPSHOT</version>
+  <groupId>org.example</groupId>
+  <artifactId>testng-junit5</artifactId>
+  <version>1.0-SNAPSHOT</version>
 
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>${java.specification.version}</maven.compiler.source>
-        <maven.compiler.target>${java.specification.version}</maven.compiler.target>
-    </properties>
+  <description>Project with mixed TestNG and JUnit5 tests.</description>
 
-    <dependencies>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <maven.compiler.source>${java.specification.version}</maven.compiler.source>
+    <maven.compiler.target>${java.specification.version}</maven.compiler.target>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.testng</groupId>
+      <artifactId>testng</artifactId>
+      <version>7.5</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.support</groupId>
+      <artifactId>testng-engine</artifactId>
+      <version>1.0.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>${surefire.version}</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>testng-only</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <configuration>
+              <testIncludes>
+                <!-- JUnit5Test.java ignored - Jupiter does not exist in dependencies. -->
+                <testInclude>**/TestNGTest.java</testInclude>
+              </testIncludes>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>junit5-engine</id>
+      <dependencies>
         <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>7.1.0</version>
-            <scope>test</scope>
+          <groupId>org.junit.jupiter</groupId>
+          <artifactId>junit-jupiter-engine</artifactId>
+          <!-- TODO check with next version of testng-engine -->
+          <!-- we have old junit-platform-commons:1.7.2 in dependency tree -->
+          <version>5.7.2</version>
+          <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>com.github.testng-team</groupId>
-            <artifactId>testng-junit5</artifactId>
-            <version>0.0.1</version>
-            <scope>test</scope>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>junit5-api</id>
+      <!--
+      This exclusion avoids inconsistent versions combination: junit-platform-engine:1.7.2 and junit-jupiter-api:5.8.2.
+      The surefire would add artifacts to the class path: junit-platform-*, junit-jupiter-engine, etc.
+      -->
+      <dependencyManagement>
+        <dependencies>
+          <dependency>
+            <groupId>org.junit.support</groupId>
+            <artifactId>testng-engine</artifactId>
             <exclusions>
-                <exclusion>
-                    <groupId>org.junit.platform</groupId>
-                    <artifactId>junit-platform-engine</artifactId>
-                </exclusion>
+              <exclusion>
+                <groupId>org.junit.platform</groupId>
+                <artifactId>junit-platform-engine</artifactId>
+              </exclusion>
             </exclusions>
+          </dependency>
+        </dependencies>
+      </dependencyManagement>
+      <dependencies>
+        <dependency>
+          <groupId>org.junit.jupiter</groupId>
+          <artifactId>junit-jupiter-api</artifactId>
+          <!-- junit-jupiter-api has junit-platform-commons as nearest definition -->
+          <!-- so junit-platform-commons:1.8.2 wins ;-) -->
+          <version>5.8.2</version>
+          <scope>test</scope>
         </dependency>
-    </dependencies>
-
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>${surefire.version}</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-
-    <profiles>
-        <profile>
-            <id>junit5-engine</id>
-            <dependencies>
-                <dependency>
-                    <groupId>org.junit.jupiter</groupId>
-                    <artifactId>junit-jupiter-engine</artifactId>
-                    <version>5.6.2</version>
-                    <scope>test</scope>
-                </dependency>
-            </dependencies>
-        </profile>
-        <profile>
-            <id>junit5-api</id>
-            <dependencies>
-                <dependency>
-                    <groupId>org.junit.jupiter</groupId>
-                    <artifactId>junit-jupiter-api</artifactId>
-                    <version>5.6.2</version>
-                    <scope>test</scope>
-                </dependency>
-            </dependencies>
-        </profile>
-    </profiles>
+      </dependencies>
+    </profile>
+  </profiles>
 
 </project>
diff --git a/surefire-its/src/test/resources/junit5-testng/src/test/java/pkg/JUnit5Test.java b/surefire-its/src/test/resources/junit5-testng/src/test/java/pkg/JUnit5Test.java
index 916eeab..eea7289 100644
--- a/surefire-its/src/test/resources/junit5-testng/src/test/java/pkg/JUnit5Test.java
+++ b/surefire-its/src/test/resources/junit5-testng/src/test/java/pkg/JUnit5Test.java
@@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test;
 
 class JUnit5Test {
     @Test
-    public void test() {
+    void test() {
 
     }
 }