358 lines
14 KiB
Diff
358 lines
14 KiB
Diff
From 5656f9c533dfd7087af7475cb274afcc26f10c02 Mon Sep 17 00:00:00 2001
|
|
From: Mikolaj Izdebski <mizdebsk@redhat.com>
|
|
Date: Mon, 10 Jul 2017 10:37:50 +0200
|
|
Subject: [PATCH 1/2] Port to TestNG 7.4.0
|
|
|
|
---
|
|
pom.xml | 2 +-
|
|
.../surefire-testng-utils/pom.xml | 1 -
|
|
.../java/testng/utils/MethodSelectorTest.java | 106 ++++++++++++++++--
|
|
surefire-providers/surefire-testng/pom.xml | 1 -
|
|
.../maven/surefire/testng/TestNGReporter.java | 4 -
|
|
.../conf/AbstractDirectConfigurator.java | 2 +-
|
|
.../testng/conf/TestNGMapConfigurator.java | 9 +-
|
|
.../surefire/testng/TestNGReporterTest.java | 4 +-
|
|
.../conf/TestNGMapConfiguratorTest.java | 6 +-
|
|
9 files changed, 104 insertions(+), 31 deletions(-)
|
|
|
|
diff --git a/pom.xml b/pom.xml
|
|
index 46ed3c60a..36fbdc5df 100644
|
|
--- a/pom.xml
|
|
+++ b/pom.xml
|
|
@@ -98,7 +98,7 @@
|
|
<mavenSharedUtilsVersion>3.3.4</mavenSharedUtilsVersion>
|
|
<powermockVersion>2.0.9</powermockVersion>
|
|
<jacocoVersion>0.8.12</jacocoVersion>
|
|
- <testngVersion>5.11</testngVersion>
|
|
+ <testngVersion>7.4.0</testngVersion>
|
|
<surefire-shared-utils.version>${project.version}</surefire-shared-utils.version>
|
|
<maven.surefire.scm.devConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-surefire.git</maven.surefire.scm.devConnection>
|
|
<maven.site.path>surefire-archives/surefire-LATEST</maven.site.path>
|
|
diff --git a/surefire-providers/surefire-testng-utils/pom.xml b/surefire-providers/surefire-testng-utils/pom.xml
|
|
index 19d6d0334..4e86fb9dc 100644
|
|
--- a/surefire-providers/surefire-testng-utils/pom.xml
|
|
+++ b/surefire-providers/surefire-testng-utils/pom.xml
|
|
@@ -47,7 +47,6 @@
|
|
<groupId>org.testng</groupId>
|
|
<artifactId>testng</artifactId>
|
|
<version>${testngVersion}</version>
|
|
- <classifier>jdk15</classifier>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
diff --git a/surefire-providers/surefire-testng-utils/src/test/java/testng/utils/MethodSelectorTest.java b/surefire-providers/surefire-testng-utils/src/test/java/testng/utils/MethodSelectorTest.java
|
|
index c0e7838bd..5f180624d 100644
|
|
--- a/surefire-providers/surefire-testng-utils/src/test/java/testng/utils/MethodSelectorTest.java
|
|
+++ b/surefire-providers/surefire-testng-utils/src/test/java/testng/utils/MethodSelectorTest.java
|
|
@@ -19,6 +19,10 @@
|
|
package testng.utils;
|
|
|
|
import java.lang.reflect.Method;
|
|
+import java.util.Collections;
|
|
+import java.util.List;
|
|
+import java.util.Map;
|
|
+import java.util.concurrent.Callable;
|
|
|
|
import junit.framework.TestCase;
|
|
import org.apache.maven.surefire.api.testset.TestListResolver;
|
|
@@ -27,7 +31,11 @@
|
|
import org.testng.IRetryAnalyzer;
|
|
import org.testng.ITestClass;
|
|
import org.testng.ITestNGMethod;
|
|
+import org.testng.ITestResult;
|
|
+import org.testng.internal.ConstructorOrMethod;
|
|
import org.testng.internal.DefaultMethodSelectorContext;
|
|
+import org.testng.internal.reflect.ReflectionHelper;
|
|
+import org.testng.xml.XmlTest;
|
|
|
|
/**
|
|
*
|
|
@@ -65,16 +73,26 @@ public void testInclusionOfMethodFromSubClass() {
|
|
}
|
|
|
|
private static class FakeTestNGMethod implements ITestNGMethod {
|
|
+ private final ConstructorOrMethod consMethod;
|
|
private final Class<?> clazz;
|
|
private final String methodName;
|
|
|
|
FakeTestNGMethod(Class<?> clazz, String methodName) {
|
|
+ ConstructorOrMethod temp = null;
|
|
+ Method[] methods = ReflectionHelper.getLocalMethods(clazz);
|
|
+ for (Method method : methods) {
|
|
+ if (method.getName().equalsIgnoreCase(methodName)) {
|
|
+ temp = new ConstructorOrMethod(method);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
this.clazz = clazz;
|
|
this.methodName = methodName;
|
|
+ this.consMethod = temp;
|
|
}
|
|
|
|
@Override
|
|
- public Class getRealClass() {
|
|
+ public Class<?> getRealClass() {
|
|
return clazz;
|
|
}
|
|
|
|
@@ -86,19 +104,14 @@ public ITestClass getTestClass() {
|
|
@Override
|
|
public void setTestClass(ITestClass iTestClass) {}
|
|
|
|
- @Override
|
|
- public Method getMethod() {
|
|
- return null;
|
|
- }
|
|
-
|
|
@Override
|
|
public String getMethodName() {
|
|
return methodName;
|
|
}
|
|
|
|
@Override
|
|
- public Object[] getInstances() {
|
|
- return new Object[0];
|
|
+ public Object getInstance() {
|
|
+ return null;
|
|
}
|
|
|
|
@Override
|
|
@@ -202,6 +215,9 @@ public long getTimeOut() {
|
|
return 0;
|
|
}
|
|
|
|
+ @Override
|
|
+ public void setTimeOut(long timeOut) {}
|
|
+
|
|
@Override
|
|
public int getInvocationCount() {
|
|
return 0;
|
|
@@ -249,11 +265,19 @@ public int getThreadPoolSize() {
|
|
@Override
|
|
public void setThreadPoolSize(int i) {}
|
|
|
|
+ @Override
|
|
+ public boolean getEnabled() {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
@Override
|
|
public String getDescription() {
|
|
return null;
|
|
}
|
|
|
|
+ @Override
|
|
+ public void setDescription(String description) {}
|
|
+
|
|
@Override
|
|
public void incrementCurrentInvocationCount() {}
|
|
|
|
@@ -270,6 +294,14 @@ public int getParameterInvocationCount() {
|
|
return 0;
|
|
}
|
|
|
|
+ @Override
|
|
+ public void setMoreInvocationChecker(Callable<Boolean> moreInvocationChecker) {}
|
|
+
|
|
+ @Override
|
|
+ public boolean hasMoreInvocation() {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
@Override
|
|
public ITestNGMethod clone() {
|
|
try {
|
|
@@ -280,12 +312,17 @@ public ITestNGMethod clone() {
|
|
}
|
|
|
|
@Override
|
|
- public IRetryAnalyzer getRetryAnalyzer() {
|
|
+ public IRetryAnalyzer getRetryAnalyzer(ITestResult result) {
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Class<? extends IRetryAnalyzer> getRetryAnalyzerClass() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
- public void setRetryAnalyzer(IRetryAnalyzer iRetryAnalyzer) {}
|
|
+ public void setRetryAnalyzerClass(Class<? extends IRetryAnalyzer> clazz) {}
|
|
|
|
@Override
|
|
public boolean skipFailedInvocations() {
|
|
@@ -309,8 +346,55 @@ public boolean ignoreMissingDependencies() {
|
|
public void setIgnoreMissingDependencies(boolean b) {}
|
|
|
|
@Override
|
|
- public int compareTo(Object o) {
|
|
+ public List<Integer> getInvocationNumbers() {
|
|
+ return Collections.emptyList();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setInvocationNumbers(List<Integer> numbers) {}
|
|
+
|
|
+ @Override
|
|
+ public void addFailedInvocationNumber(int number) {}
|
|
+
|
|
+ @Override
|
|
+ public List<Integer> getFailedInvocationNumbers() {
|
|
+ return Collections.emptyList();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int getPriority() {
|
|
+ return 0;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setPriority(int priority) {}
|
|
+
|
|
+ @Override
|
|
+ public int getInterceptedPriority() {
|
|
return 0;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void setInterceptedPriority(int priority) {}
|
|
+
|
|
+ @Override
|
|
+ public XmlTest getXmlTest() {
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public ConstructorOrMethod getConstructorOrMethod() {
|
|
+ return consMethod;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Map<String, String> findMethodParameters(XmlTest test) {
|
|
+ return test.getLocalParameters();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public String getQualifiedName() {
|
|
+ return null;
|
|
+ }
|
|
}
|
|
}
|
|
diff --git a/surefire-providers/surefire-testng/pom.xml b/surefire-providers/surefire-testng/pom.xml
|
|
index e180a41ac..72ac6bad5 100644
|
|
--- a/surefire-providers/surefire-testng/pom.xml
|
|
+++ b/surefire-providers/surefire-testng/pom.xml
|
|
@@ -57,7 +57,6 @@
|
|
<groupId>org.testng</groupId>
|
|
<artifactId>testng</artifactId>
|
|
<version>${testngVersion}</version>
|
|
- <classifier>jdk15</classifier>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java
|
|
index ec887b792..3021a4049 100644
|
|
--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java
|
|
+++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java
|
|
@@ -59,10 +59,6 @@ public class TestNGReporter
|
|
/**
|
|
* Constructs a new instance that will listen to
|
|
* test updates from a {@link org.testng.TestNG} class instance.
|
|
- * <br>
|
|
- * <br>It is assumed that the requisite {@link org.testng.TestNG#addListener(ITestListener)}
|
|
- * method call has already associated with this instance <i>before</i> the test
|
|
- * suite is run.
|
|
*
|
|
* @param reportManager Instance to report suite status to
|
|
*/
|
|
diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
|
|
index b73b9bacd..6ab5a626d 100644
|
|
--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
|
|
+++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
|
|
@@ -57,7 +57,7 @@ public void configure(TestNG testng, Map<String, String> options) throws TestSet
|
|
testng.setUseDefaultListeners(false);
|
|
configureInstance(testng, options);
|
|
// TODO: we should have the Profile so that we can decide if this is needed or not
|
|
- testng.setListenerClasses(loadListenerClasses(listeners));
|
|
+ testng.setListenerClasses((List) loadListenerClasses(listeners));
|
|
}
|
|
|
|
@Override
|
|
diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNGMapConfigurator.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNGMapConfigurator.java
|
|
index d91e76afc..4bb4fe0b0 100755
|
|
--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNGMapConfigurator.java
|
|
+++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/TestNGMapConfigurator.java
|
|
@@ -33,12 +33,7 @@
|
|
|
|
/**
|
|
* TestNG configurator for 5.3+ versions. TestNG exposes a {@link org.testng.TestNG#configure(java.util.Map)} method.
|
|
- * All supported TestNG options are passed in String format, except
|
|
- * {@link org.testng.TestNGCommandLineArgs#LISTENER_COMMAND_OPT} which is {@link java.util.List List>Class<},
|
|
- * {@link org.testng.TestNGCommandLineArgs#JUNIT_DEF_OPT} which is a {@link Boolean},
|
|
- * {@link org.testng.TestNGCommandLineArgs#SKIP_FAILED_INVOCATION_COUNT_OPT} which is a {@link Boolean},
|
|
- * {@link org.testng.TestNGCommandLineArgs#OBJECT_FACTORY_COMMAND_OPT} which is a {@link Class},
|
|
- * {@link org.testng.TestNGCommandLineArgs#REPORTERS_LIST} which is a {@link java.util.List List>ReporterConfig<}.
|
|
+ * All supported TestNG options are passed in String format.
|
|
* <br>
|
|
* Test classes and/or suite files are not passed along as options parameters, but configured separately.
|
|
*
|
|
@@ -71,7 +66,7 @@ protected void configureThreadCount(XmlSuite suite, Map<String, String> options)
|
|
protected void configureParallel(XmlSuite suite, Map<String, String> options) throws TestSetFailedException {
|
|
String parallel = options.get(PARALLEL_PROP);
|
|
if (parallel != null) {
|
|
- suite.setParallel(parallel);
|
|
+ suite.setParallel(XmlSuite.ParallelMode.getValidParallel(parallel));
|
|
}
|
|
}
|
|
|
|
diff --git a/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/TestNGReporterTest.java b/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/TestNGReporterTest.java
|
|
index 514ecf9f8..5b201d765 100644
|
|
--- a/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/TestNGReporterTest.java
|
|
+++ b/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/TestNGReporterTest.java
|
|
@@ -129,7 +129,7 @@ public void testOnTestFailure() {
|
|
|
|
ITestResult testResult = mock(ITestResult.class);
|
|
when(testResult.getThrowable()).thenReturn(stackTrace);
|
|
- when(cls.getRealClass()).thenReturn(getClass());
|
|
+ when((Object) cls.getRealClass()).thenReturn(getClass());
|
|
when(testResult.getTestClass()).thenReturn(cls);
|
|
when(testResult.getMethod()).thenReturn(method);
|
|
when(testResult.getName()).thenReturn("myTest");
|
|
@@ -200,7 +200,7 @@ public void testOnTestFailedButWithinSuccessPercentage() {
|
|
|
|
ITestResult testResult = mock(ITestResult.class);
|
|
when(testResult.getThrowable()).thenReturn(stackTrace);
|
|
- when(cls.getRealClass()).thenReturn(getClass());
|
|
+ when((Object) cls.getRealClass()).thenReturn(getClass());
|
|
when(testResult.getTestClass()).thenReturn(cls);
|
|
when(testResult.getMethod()).thenReturn(method);
|
|
when(testResult.getName()).thenReturn("myTest");
|
|
diff --git a/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/conf/TestNGMapConfiguratorTest.java b/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/conf/TestNGMapConfiguratorTest.java
|
|
index 097a74d1e..8b34db85d 100755
|
|
--- a/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/conf/TestNGMapConfiguratorTest.java
|
|
+++ b/surefire-providers/surefire-testng/src/test/java/org/apache/maven/surefire/testng/conf/TestNGMapConfiguratorTest.java
|
|
@@ -24,7 +24,7 @@
|
|
|
|
import junit.framework.TestCase;
|
|
import org.apache.maven.surefire.api.testset.TestSetFailedException;
|
|
-import org.testng.ReporterConfig;
|
|
+import org.testng.internal.ReporterConfig;
|
|
|
|
/**
|
|
* @author Kristian Rosenvold
|
|
@@ -62,8 +62,8 @@ public void testGroupByInstances() throws Exception {
|
|
|
|
public void testReporter() throws Exception {
|
|
Map<String, Object> convertedOptions = getConvertedOptions("reporter", "classname");
|
|
- List<ReporterConfig> reporter = (List) convertedOptions.get("-reporterslist");
|
|
- ReporterConfig reporterConfig = reporter.get(0);
|
|
+ String reporter = (String) convertedOptions.get("-reporterslist");
|
|
+ ReporterConfig reporterConfig = ReporterConfig.deserialize(reporter);
|
|
assertEquals("classname", reporterConfig.getClassName());
|
|
}
|
|
|
|
--
|
|
2.47.0
|
|
|