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() {
}
}