Package org.testng.internal
Class TestMethodWorker
- java.lang.Object
-
- org.testng.internal.TestMethodWorker
-
- All Implemented Interfaces:
java.lang.Comparable<IWorker<ITestNGMethod>>
,java.lang.Runnable
,IWorker<ITestNGMethod>
public class TestMethodWorker extends java.lang.Object implements IWorker<ITestNGMethod>
FIXME: reduce contention when this class is used through parallel invocation due to invocationCount and threadPoolSize by not invoking the @BeforeClass and @AfterClass which are already invoked on the original method.This class implements Runnable and will invoke the ITestMethod passed in its constructor on its run() method.
-
-
Constructor Summary
Constructors Constructor Description TestMethodWorker(ITestInvoker testInvoker, IConfigInvoker configInvoker, java.util.List<IMethodInstance> testMethods, java.util.Map<java.lang.String,java.lang.String> parameters, ConfigurationGroupMethods groupMethods, ClassMethodMap classMethodMap, ITestContext testContext, java.util.List<IClassListener> listeners)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(IWorker<ITestNGMethod> other)
boolean
completed()
long
getCurrentThreadId()
int
getPriority()
The priority of a worker is the priority of the first method it's going to run.java.util.List<ITestNGMethod>
getTasks()
java.util.List<ITestResult>
getTestResults()
long
getTimeOut()
Retrieves the maximum specified timeout of all ITestNGMethods to be run.protected int
indexOf(ITestNGMethod tm, ITestNGMethod[] allTestMethods)
protected void
invokeAfterClassMethods(ITestClass testClass, IMethodInstance mi)
Invoke the @AfterClass methods if not done alreadyprotected void
invokeBeforeClassMethods(ITestClass testClass, IMethodInstance mi)
Invoke the @BeforeClass methods if not done alreadyprotected void
invokeTestMethods(ITestNGMethod tm, java.lang.Object instance)
void
run()
Run all the ITestNGMethods passed in through the constructor.void
setThreadIdToRunOn(long threadIdToRunOn)
java.lang.String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.testng.thread.IWorker
getThreadIdToRunOn
-
-
-
-
Constructor Detail
-
TestMethodWorker
public TestMethodWorker(ITestInvoker testInvoker, IConfigInvoker configInvoker, java.util.List<IMethodInstance> testMethods, java.util.Map<java.lang.String,java.lang.String> parameters, ConfigurationGroupMethods groupMethods, ClassMethodMap classMethodMap, ITestContext testContext, java.util.List<IClassListener> listeners)
-
-
Method Detail
-
getTimeOut
public long getTimeOut()
Retrieves the maximum specified timeout of all ITestNGMethods to be run.- Specified by:
getTimeOut
in interfaceIWorker<ITestNGMethod>
- Returns:
- the max timeout or 0 if no timeout was specified
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
run
public void run()
Run all the ITestNGMethods passed in through the constructor.- Specified by:
run
in interfacejava.lang.Runnable
- See Also:
Runnable.run()
-
invokeTestMethods
protected void invokeTestMethods(ITestNGMethod tm, java.lang.Object instance)
-
invokeBeforeClassMethods
protected void invokeBeforeClassMethods(ITestClass testClass, IMethodInstance mi)
Invoke the @BeforeClass methods if not done already
-
invokeAfterClassMethods
protected void invokeAfterClassMethods(ITestClass testClass, IMethodInstance mi)
Invoke the @AfterClass methods if not done already
-
indexOf
protected int indexOf(ITestNGMethod tm, ITestNGMethod[] allTestMethods)
-
getTestResults
public java.util.List<ITestResult> getTestResults()
-
getTasks
public java.util.List<ITestNGMethod> getTasks()
- Specified by:
getTasks
in interfaceIWorker<ITestNGMethod>
- Returns:
- list of tasks this worker is working on.
-
compareTo
public int compareTo(@Nonnull IWorker<ITestNGMethod> other)
- Specified by:
compareTo
in interfacejava.lang.Comparable<IWorker<ITestNGMethod>>
-
getPriority
public int getPriority()
The priority of a worker is the priority of the first method it's going to run.- Specified by:
getPriority
in interfaceIWorker<ITestNGMethod>
- Returns:
- the priority of this task.
-
getCurrentThreadId
public long getCurrentThreadId()
- Specified by:
getCurrentThreadId
in interfaceIWorker<ITestNGMethod>
-
setThreadIdToRunOn
public void setThreadIdToRunOn(long threadIdToRunOn)
- Specified by:
setThreadIdToRunOn
in interfaceIWorker<ITestNGMethod>
-
completed
public boolean completed()
- Specified by:
completed
in interfaceIWorker<ITestNGMethod>
-
-