You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2020/05/10 19:18:43 UTC

[maven-surefire] branch SUREFIRE-1787 updated: integration test

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

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


The following commit(s) were added to refs/heads/SUREFIRE-1787 by this push:
     new ba67f4f  integration test
ba67f4f is described below

commit ba67f4f7f0af1767e328314c17389e67cf732398
Author: tibordigana <ti...@apache.org>
AuthorDate: Sun May 10 19:18:37 2020 +0200

    integration test
---
 .../plugin/surefire/AbstractSurefireMojo.java      | 21 +++---
 .../surefire/its/jiras/Surefire1787JUnit5IT.java   | 82 ++++++++++++++++++++++
 surefire-its/src/test/resources/junit-4-5/pom.xml  |  9 +--
 3 files changed, 98 insertions(+), 14 deletions(-)

diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
index b9258fc..9fa9d88 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
@@ -3136,34 +3136,35 @@ public abstract class AbstractSurefireMojo
             String surefireVersion = getBooterArtifact().getBaseVersion();
             Map<String, Artifact> providerArtifacts =
                     surefireDependencyResolver.getProviderClasspathAsMap( "surefire-junit-platform", surefireVersion );
-            Map<String, Artifact> testDependencies = testClasspath.getTestDependencies();
+            Map<String, Artifact> testDeps = testClasspath.getTestDependencies();
 
             ProjectBuildingRequest request = getSession().getProjectBuildingRequest();
             Plugin plugin = getPluginDescriptor().getPlugin();
-            Map<String, Artifact> engines =
+            Map<String, Artifact> pluginDeps =
                 surefireDependencyResolver.resolvePluginDependencies( request, plugin, getPluginArtifactMap() );
 
-            if ( hasDependencyPlatformEngine( engines ) )
+            if ( hasDependencyPlatformEngine( pluginDeps ) )
             {
-                providerArtifacts.putAll( engines );
+                providerArtifacts.putAll( pluginDeps );
             }
-            else if ( !hasDependencyPlatformEngine( testDependencies ) )
+            else
             {
                 String engineVersion = null;
-                if ( hasDependencyJupiterAPI( testDependencies ) )
+                if ( hasDependencyJupiterAPI( testDeps )
+                    && !testDeps.containsKey( "org.junit.jupiter:junit-jupiter-engine" ) )
                 {
                     String engineGroupId = "org.junit.jupiter";
                     String engineArtifactId = "junit-jupiter-engine";
                     String engineCoordinates = engineGroupId + ":" + engineArtifactId;
                     String api = "org.junit.jupiter:junit-jupiter-api";
-                    engineVersion = testDependencies.get( api ).getBaseVersion();
+                    engineVersion = testDeps.get( api ).getBaseVersion();
                     getConsoleLogger().debug( "Test dependencies contain "
                         + api + ". Resolving " + engineCoordinates + ":" + engineVersion );
                     addEngineByApi( engineGroupId, engineArtifactId, engineVersion, providerArtifacts );
                 }
 
-                if ( testDependencies.containsKey( "junit:junit" )
-                    || testDependencies.containsKey( "junit:junit-dep" ) )
+                if ( ( testDeps.containsKey( "junit:junit" ) || testDeps.containsKey( "junit:junit-dep" ) )
+                    && !testDeps.containsKey( "org.junit.vintage:junit-vintage-engine" ) )
                 {
                     String engineGroupId = "org.junit.vintage";
                     String engineArtifactId = "junit-vintage-engine";
@@ -3178,7 +3179,7 @@ public abstract class AbstractSurefireMojo
                 }
             }
 
-            narrowDependencies( providerArtifacts, testDependencies );
+            narrowDependencies( providerArtifacts, testDeps );
             alignProviderVersions( providerArtifacts );
 
             return new LinkedHashSet<>( providerArtifacts.values() );
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
new file mode 100644
index 0000000..0423993
--- /dev/null
+++ b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1787JUnit5IT.java
@@ -0,0 +1,82 @@
+package org.apache.maven.surefire.its.jiras;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.surefire.its.fixture.SurefireJUnit4IntegrationTestCase;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class Surefire1787JUnit5IT extends SurefireJUnit4IntegrationTestCase
+{
+    @Test
+    public void bothEngines()
+    {
+        unpack( "junit-4-5" )
+            .activateProfile( "both-engines" )
+            .executeTest()
+            .verifyErrorFree( 2 )
+            .verifyTextInLog( "Running pkg.JUnit4Test" )
+            .verifyTextInLog( "Running pkg.JUnit5Test" );
+    }
+
+    @Test
+    public void apiAndEngine()
+    {
+        unpack( "junit-4-5" )
+            .activateProfile( "api-and-engines" )
+            .executeTest()
+            .verifyErrorFree( 2 )
+            .verifyTextInLog( "Running pkg.JUnit4Test" )
+            .verifyTextInLog( "Running pkg.JUnit5Test" );
+    }
+
+    @Test
+    public void bothApis()
+    {
+        unpack( "junit-4-5" )
+            .activateProfile( "both-api" )
+            .executeTest()
+            .verifyErrorFree( 2 )
+            .verifyTextInLog( "Running pkg.JUnit4Test" )
+            .verifyTextInLog( "Running pkg.JUnit5Test" );
+    }
+
+    @Test
+    public void selectJUnit4()
+    {
+        unpack( "junit-4-5" )
+            .activateProfile( "select-junit4" )
+            .executeTest()
+            .verifyErrorFree( 1 )
+            .verifyTextInLog( "Running pkg.JUnit4Test" );
+    }
+
+    @Test
+    public void selectJUnit5()
+    {
+        unpack( "junit-4-5" )
+            .activateProfile( "select-junit5" )
+            .executeTest()
+            .verifyErrorFree( 1 )
+            .verifyTextInLog( "Running pkg.JUnit5Test" );
+    }
+}
diff --git a/surefire-its/src/test/resources/junit-4-5/pom.xml b/surefire-its/src/test/resources/junit-4-5/pom.xml
index 7173eb1..546b8fc 100644
--- a/surefire-its/src/test/resources/junit-4-5/pom.xml
+++ b/surefire-its/src/test/resources/junit-4-5/pom.xml
@@ -9,8 +9,9 @@
     <version>1.0-SNAPSHOT</version>
 
     <properties>
-        <maven.compiler.testSource>1.8</maven.compiler.testSource>
-        <maven.compiler.testTarget>1.8</maven.compiler.testTarget>
+        <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>
 
     <build>
@@ -19,7 +20,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.0.0-SNAPSHOT</version>
+                    <version>${surefire.version}</version>
                 </plugin>
             </plugins>
         </pluginManagement>
@@ -143,4 +144,4 @@
         </profile>
     </profiles>
 
-</project>
\ No newline at end of file
+</project>