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 classTestInvoker.MethodInvocationAgentprivate static classTestInvoker.StatusHolder-
Nested classes/interfaces inherited from interface org.testng.internal.ITestInvoker
ITestInvoker.FailureContext
-
-
Field Summary
Fields Modifier and Type Field Description private DataProviderHolderholderprivate ConfigInvokerinvokerprivate java.util.List<IClassListener>m_classListenersprivate booleanm_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, DataProviderHolder holder, 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 DataProviderHolderbuildDataProviderHolder()private java.lang.StringcheckDependencies(ITestNGMethod testMethod, ITestNGMethod[] allTestMethods)Checks to see of the test method has certain dependencies that prevents TestNG from executing itprivate voidcollectResults(ITestNGMethod testMethod, ITestResult result)private static intcomputeTestStatusComparingTestResultAndStatusHolder(ITestResult testResult, TestInvoker.StatusHolder holder, boolean wasResultUnaltered)private TestInvoker.StatusHolderconsiderExceptions(ITestNGMethod tm, ITestResult testresult, ExpectedExceptionsHolder exceptionsHolder, ITestInvoker.FailureContext failure)private java.util.Collection<IDataProviderListener>dataProviderListeners()private booleanfailuresPresentInUpstreamDependency(ITestNGMethod testMethod, ITestNGMethod[] methods)ITestResultNotifiergetNotifier()private voidhandleInvocationResults(ITestNGMethod testMethod, ITestResult testResult, ITestInvoker.FailureContext failure, TestInvoker.StatusHolder holder, boolean wasResultUnaltered)voidinvokeListenersForSkippedTestResult(ITestResult r, IInvokedMethod invokedMethod)private ITestResultinvokeMethod(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.ITestResultinvokeTestMethod(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)ITestResultregisterSkippedTestResult(ITestNGMethod testMethod, long start, java.lang.Throwable throwable)ITestInvoker.FailureContextretryFailed(TestMethodArguments arguments, java.util.List<ITestResult> result, int failureCount, ITestContext testContext)private voidrunAfterGroupsConfigurations(TestMethodArguments arguments, XmlSuite suite, TestResult testResult)private voidrunConfigMethods(TestMethodArguments arguments, XmlSuite suite, TestResult testResult, ITestNGMethod[] teardownConfigMethods)voidrunTestResultListener(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 voidsetTestStatus(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
-
holder
private final DataProviderHolder holder
-
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, DataProviderHolder holder, java.util.List<IClassListener> m_classListeners, boolean m_skipFailedInvocationCounts, ConfigInvoker invoker)
-
-
Method Detail
-
getNotifier
public ITestResultNotifier getNotifier()
- Specified by:
getNotifierin interfaceITestInvoker
-
invokeTestMethods
public java.util.List<ITestResult> invokeTestMethods(ITestNGMethod testMethod, ConfigurationGroupMethods groupMethods, java.lang.Object instance, ITestContext context)
- Specified by:
invokeTestMethodsin 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:
invokeTestMethodin interfaceITestInvoker
- through an
-
retryFailed
public ITestInvoker.FailureContext retryFailed(TestMethodArguments arguments, java.util.List<ITestResult> result, int failureCount, ITestContext testContext)
- Specified by:
retryFailedin interfaceITestInvoker
-
runTestResultListener
public void runTestResultListener(ITestResult tr)
- Specified by:
runTestResultListenerin interfaceITestInvoker
-
dataProviderListeners
private java.util.Collection<IDataProviderListener> dataProviderListeners()
-
buildDataProviderHolder
private DataProviderHolder buildDataProviderHolder()
-
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:
invokeListenersForSkippedTestResultin 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:
registerSkippedTestResultin 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)
-
-