Package org.testng.internal
Class TestInvoker
- java.lang.Object
-
- org.testng.internal.BaseInvoker
-
- org.testng.internal.TestInvoker
-
- All Implemented Interfaces:
ITestInvoker
class TestInvoker extends BaseInvoker implements ITestInvoker
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
TestInvoker.MethodInvocationAgent
private static class
TestInvoker.StatusHolder
-
Nested classes/interfaces inherited from interface org.testng.internal.ITestInvoker
ITestInvoker.FailureContext
-
-
Field Summary
Fields Modifier and Type Field Description private ConfigInvoker
invoker
private java.util.List<IClassListener>
m_classListeners
private java.util.Collection<IDataProviderListener>
m_dataproviderListeners
private boolean
m_skipFailedInvocationCounts
-
Fields inherited from class org.testng.internal.BaseInvoker
m_classInvocationResults, m_configuration, m_notifier, m_suiteState, m_testContext
-
-
Constructor Summary
Constructors Constructor Description TestInvoker(ITestResultNotifier m_notifier, ITestContext m_testContext, SuiteRunState m_suiteState, IConfiguration m_configuration, java.util.Collection<IInvokedMethodListener> m_invokedMethodListeners, java.util.Collection<IDataProviderListener> m_dataproviderListeners, java.util.List<IClassListener> m_classListeners, boolean m_skipFailedInvocationCounts, ConfigInvoker invoker)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
checkDependencies(ITestNGMethod testMethod, ITestNGMethod[] allTestMethods)
Checks to see of the test method has certain dependencies that prevents TestNG from executing itprivate void
collectResults(ITestNGMethod testMethod, ITestResult result)
private static int
computeTestStatusComparingTestResultAndStatusHolder(ITestResult testResult, TestInvoker.StatusHolder holder, boolean wasResultUnaltered)
private TestInvoker.StatusHolder
considerExceptions(ITestNGMethod tm, ITestResult testresult, ExpectedExceptionsHolder exceptionsHolder, ITestInvoker.FailureContext failure)
private java.util.Collection<IDataProviderListener>
dataProviderListeners()
private boolean
failuresPresentInUpstreamDependency(ITestNGMethod testMethod, ITestNGMethod[] methods)
ITestResultNotifier
getNotifier()
private void
handleInvocationResults(ITestNGMethod testMethod, ITestResult testResult, ITestInvoker.FailureContext failure, TestInvoker.StatusHolder holder, boolean wasResultUnaltered)
void
invokeListenersForSkippedTestResult(ITestResult r, IInvokedMethod invokedMethod)
private ITestResult
invokeMethod(TestMethodArguments arguments, XmlSuite suite, ITestInvoker.FailureContext failureContext)
private java.util.List<ITestResult>
invokePooledTestMethods(ITestNGMethod testMethod, XmlSuite suite, java.util.Map<java.lang.String,java.lang.String> parameters, ConfigurationGroupMethods groupMethods, ITestContext testContext)
Invokes a method that has a specified threadPoolSize.ITestResult
invokeTestMethod(TestMethodArguments arguments, XmlSuite suite, ITestInvoker.FailureContext failureContext)
invokeTestMethods() eventually converge here to invoke a single @Test method.java.util.List<ITestResult>
invokeTestMethods(ITestNGMethod testMethod, ConfigurationGroupMethods groupMethods, java.lang.Object instance, ITestContext context)
private java.util.Set<ITestResult>
keepSameInstances(ITestNGMethod method, java.util.Set<ITestResult> results)
ITestResult
registerSkippedTestResult(ITestNGMethod testMethod, long start, java.lang.Throwable throwable)
ITestInvoker.FailureContext
retryFailed(TestMethodArguments arguments, java.util.List<ITestResult> result, int failureCount, ITestContext testContext)
private void
runAfterGroupsConfigurations(TestMethodArguments arguments, XmlSuite suite, TestResult testResult)
private void
runConfigMethods(TestMethodArguments arguments, XmlSuite suite, TestResult testResult, ITestNGMethod[] teardownConfigMethods)
void
runTestResultListener(ITestResult tr)
private java.util.List<ITestResult>
runWorkers(ITestNGMethod testMethod, java.util.List<IWorker<ITestNGMethod>> workers, int threadPoolSize, ConfigurationGroupMethods groupMethods, XmlSuite suite, java.util.Map<java.lang.String,java.lang.String> parameters)
To reduce thread contention and also to correctly handle thread-confinement this method invokes the @BeforeGroups and @AfterGroups corresponding to the current @Test method.private static void
setTestStatus(ITestResult result, int status)
-
Methods inherited from class org.testng.internal.BaseInvoker
annotationFinder, handleException, isSkipExceptionAndSkip, log, runInvokedMethodListeners
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.testng.internal.ITestInvoker
getRunner
-
-
-
-
Field Detail
-
invoker
private final ConfigInvoker invoker
-
m_dataproviderListeners
private final java.util.Collection<IDataProviderListener> m_dataproviderListeners
-
m_classListeners
private final java.util.List<IClassListener> m_classListeners
-
m_skipFailedInvocationCounts
private final boolean m_skipFailedInvocationCounts
-
-
Constructor Detail
-
TestInvoker
public TestInvoker(ITestResultNotifier m_notifier, ITestContext m_testContext, SuiteRunState m_suiteState, IConfiguration m_configuration, java.util.Collection<IInvokedMethodListener> m_invokedMethodListeners, java.util.Collection<IDataProviderListener> m_dataproviderListeners, java.util.List<IClassListener> m_classListeners, boolean m_skipFailedInvocationCounts, ConfigInvoker invoker)
-
-
Method Detail
-
getNotifier
public ITestResultNotifier getNotifier()
- Specified by:
getNotifier
in interfaceITestInvoker
-
invokeTestMethods
public java.util.List<ITestResult> invokeTestMethods(ITestNGMethod testMethod, ConfigurationGroupMethods groupMethods, java.lang.Object instance, ITestContext context)
- Specified by:
invokeTestMethods
in interfaceITestInvoker
-
invokeTestMethod
public ITestResult invokeTestMethod(TestMethodArguments arguments, XmlSuite suite, ITestInvoker.FailureContext failureContext)
invokeTestMethods() eventually converge here to invoke a single @Test method.This method is responsible for actually invoking the method. It decides if the invocation must be done:
- through an
IHookable
- directly (through reflection)
- in a separate thread (in case it needs to timeout)
This method is also responsible for invoking @BeforeGroup, @BeforeMethod, @AfterMethod, @AfterGroup if it is the case for the passed in @Test method.
- Specified by:
invokeTestMethod
in interfaceITestInvoker
- through an
-
retryFailed
public ITestInvoker.FailureContext retryFailed(TestMethodArguments arguments, java.util.List<ITestResult> result, int failureCount, ITestContext testContext)
- Specified by:
retryFailed
in interfaceITestInvoker
-
runTestResultListener
public void runTestResultListener(ITestResult tr)
- Specified by:
runTestResultListener
in interfaceITestInvoker
-
dataProviderListeners
private java.util.Collection<IDataProviderListener> dataProviderListeners()
-
checkDependencies
private java.lang.String checkDependencies(ITestNGMethod testMethod, ITestNGMethod[] allTestMethods)
Checks to see of the test method has certain dependencies that prevents TestNG from executing it- Parameters:
testMethod
- test method being checked for- Returns:
- error message or null if dependencies have been run successfully
-
runWorkers
private java.util.List<ITestResult> runWorkers(ITestNGMethod testMethod, java.util.List<IWorker<ITestNGMethod>> workers, int threadPoolSize, ConfigurationGroupMethods groupMethods, XmlSuite suite, java.util.Map<java.lang.String,java.lang.String> parameters)
To reduce thread contention and also to correctly handle thread-confinement this method invokes the @BeforeGroups and @AfterGroups corresponding to the current @Test method.
-
failuresPresentInUpstreamDependency
private boolean failuresPresentInUpstreamDependency(ITestNGMethod testMethod, ITestNGMethod[] methods)
-
keepSameInstances
private java.util.Set<ITestResult> keepSameInstances(ITestNGMethod method, java.util.Set<ITestResult> results)
- Returns:
- the test results that apply to one of the instances of the testMethod.
-
invokePooledTestMethods
private java.util.List<ITestResult> invokePooledTestMethods(ITestNGMethod testMethod, XmlSuite suite, java.util.Map<java.lang.String,java.lang.String> parameters, ConfigurationGroupMethods groupMethods, ITestContext testContext)
Invokes a method that has a specified threadPoolSize.
-
collectResults
private void collectResults(ITestNGMethod testMethod, ITestResult result)
-
invokeListenersForSkippedTestResult
public void invokeListenersForSkippedTestResult(ITestResult r, IInvokedMethod invokedMethod)
- Specified by:
invokeListenersForSkippedTestResult
in interfaceITestInvoker
-
setTestStatus
private static void setTestStatus(ITestResult result, int status)
-
handleInvocationResults
private void handleInvocationResults(ITestNGMethod testMethod, ITestResult testResult, ITestInvoker.FailureContext failure, TestInvoker.StatusHolder holder, boolean wasResultUnaltered)
-
invokeMethod
private ITestResult invokeMethod(TestMethodArguments arguments, XmlSuite suite, ITestInvoker.FailureContext failureContext)
-
runAfterGroupsConfigurations
private void runAfterGroupsConfigurations(TestMethodArguments arguments, XmlSuite suite, TestResult testResult)
-
runConfigMethods
private void runConfigMethods(TestMethodArguments arguments, XmlSuite suite, TestResult testResult, ITestNGMethod[] teardownConfigMethods)
-
registerSkippedTestResult
public ITestResult registerSkippedTestResult(ITestNGMethod testMethod, long start, java.lang.Throwable throwable)
- Specified by:
registerSkippedTestResult
in interfaceITestInvoker
-
considerExceptions
private TestInvoker.StatusHolder considerExceptions(ITestNGMethod tm, ITestResult testresult, ExpectedExceptionsHolder exceptionsHolder, ITestInvoker.FailureContext failure)
-
computeTestStatusComparingTestResultAndStatusHolder
private static int computeTestStatusComparingTestResultAndStatusHolder(ITestResult testResult, TestInvoker.StatusHolder holder, boolean wasResultUnaltered)
-
-