Fixed bug: if a @Test method declares an ITestContext parameter, that parameter gets passed twice.
diff --git a/src/main/org/testng/internal/Parameters.java b/src/main/org/testng/internal/Parameters.java
index fdc91a7..97109b7 100644
--- a/src/main/org/testng/internal/Parameters.java
+++ b/src/main/org/testng/internal/Parameters.java
@@ -254,22 +254,6 @@
{
List<Object> result = new ArrayList<Object>();
- //
- // If the configuration method has a Method or an ITestContext parameter,
- // fill it
- //
- Method currentTestMethod = params.currentTestMethod;
- if (currentTestMethod != null) {
- for (Class cls : currentTestMethod.getParameterTypes()) {
- if (cls.equals(Method.class)) {
- result.add(currentTestMethod);
- }
- else if (cls.equals(ITestContext.class)) {
- result.add(params.context);
- }
- }
- }
-
Object[] extraParameters = new Object[0];
//
// Try to find an @Parameters annotation
@@ -286,7 +270,7 @@
//
else {
IParameterizable a = (IParameterizable) finder.findAnnotation(m, annotationClass);
- if(null != a) {
+ if(null != a && a.getParameters().length > 0) {
String[] parameterNames = a.getParameters();
extraParameters = createParameters(m.getName(), m.getParameterTypes(),
atName, parameterNames, params, xmlSuite);
diff --git a/test/src/test/tmp/InjectTest.java b/test/src/test/tmp/InjectTest.java
new file mode 100644
index 0000000..44b7121
--- /dev/null
+++ b/test/src/test/tmp/InjectTest.java
@@ -0,0 +1,12 @@
+package test.tmp;
+
+import org.testng.ITestContext;
+import org.testng.annotations.Test;
+
+public class InjectTest {
+
+ @Test
+ public void t(ITestContext tc) {
+ System.out.println("ITestContext:" + tc);
+ }
+}
diff --git a/test/testng-single.xml b/test/testng-single.xml
index 8b97b2a..aa288e4 100644
--- a/test/testng-single.xml
+++ b/test/testng-single.xml
@@ -1,6 +1,6 @@
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
-<suite name="Single" parallel="tests" verbose="1"
+<suite name="Single" verbose="10"
>
@@ -13,8 +13,7 @@
<test name="InvocationCountFirstAndLastTime" >
<classes>
- <class name="test.invocationcount.InvocationCountOnlyFirstTimeTest" />
- <class name="test.invocationcount.InvocationCountOnlyFirstTimeVerifyTest" />
+ <class name="test.tmp.InjectTest" />
</classes>
</test>