Package org.testng.internal
Class TestInvoker
java.lang.Object
org.testng.internal.BaseInvoker
org.testng.internal.TestInvoker
- All Implemented Interfaces:
ITestInvoker
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class
private static class
Nested classes/interfaces inherited from interface org.testng.internal.ITestInvoker
ITestInvoker.FailureContext
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final DataProviderHolder
private final ConfigInvoker
private final List<IClassListener>
private final boolean
Fields inherited from class org.testng.internal.BaseInvoker
m_classInvocationResults, m_configuration, m_notifier, m_suiteState, m_testContext
-
Constructor Summary
ConstructorsConstructorDescriptionTestInvoker
(ITestResultNotifier m_notifier, ITestContext m_testContext, SuiteRunState m_suiteState, IConfiguration m_configuration, Collection<IInvokedMethodListener> m_invokedMethodListeners, DataProviderHolder holder, List<IClassListener> m_classListeners, boolean m_skipFailedInvocationCounts, ConfigInvoker invoker) -
Method Summary
Modifier and TypeMethodDescriptionprivate DataProviderHolder
private String
checkDependencies
(ITestNGMethod testMethod) 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 Collection<IDataProviderListener>
private boolean
failuresPresentInUpstreamDependency
(ITestNGMethod testMethod, ITestNGMethod[] methods) 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 List<ITestResult>
invokePooledTestMethods
(ITestNGMethod testMethod, XmlSuite suite, Map<String, String> parameters, ConfigurationGroupMethods groupMethods, ITestContext testContext) Invokes a method that has a specified threadPoolSize.invokeTestMethod
(TestMethodArguments arguments, XmlSuite suite, ITestInvoker.FailureContext failureContext) invokeTestMethods() eventually converge here to invoke a single @Test method.invokeTestMethods
(ITestNGMethod testMethod, ConfigurationGroupMethods groupMethods, Object instance, ITestContext context) private Set<ITestResult>
keepSameInstances
(ITestNGMethod method, Set<ITestResult> results) registerSkippedTestResult
(ITestNGMethod testMethod, long start, Throwable throwable, ITestResult source) retryFailed
(TestMethodArguments arguments, 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
private List<ITestResult>
runWorkers
(ITestNGMethod testMethod, List<IWorker<ITestNGMethod>> workers, int threadPoolSize, ConfigurationGroupMethods groupMethods, XmlSuite suite, Map<String, 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, registerSkippedTestResult
-
Field Details
-
invoker
-
holder
-
m_classListeners
-
m_skipFailedInvocationCounts
private final boolean m_skipFailedInvocationCounts
-
-
Constructor Details
-
TestInvoker
public TestInvoker(ITestResultNotifier m_notifier, ITestContext m_testContext, SuiteRunState m_suiteState, IConfiguration m_configuration, Collection<IInvokedMethodListener> m_invokedMethodListeners, DataProviderHolder holder, List<IClassListener> m_classListeners, boolean m_skipFailedInvocationCounts, ConfigInvoker invoker)
-
-
Method Details
-
getNotifier
- Specified by:
getNotifier
in interfaceITestInvoker
-
invokeTestMethods
public List<ITestResult> invokeTestMethods(ITestNGMethod testMethod, ConfigurationGroupMethods groupMethods, 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, List<ITestResult> result, int failureCount, ITestContext testContext) - Specified by:
retryFailed
in interfaceITestInvoker
-
runTestResultListener
- Specified by:
runTestResultListener
in interfaceITestInvoker
-
dataProviderListeners
-
buildDataProviderHolder
-
checkDependencies
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 List<ITestResult> runWorkers(ITestNGMethod testMethod, List<IWorker<ITestNGMethod>> workers, int threadPoolSize, ConfigurationGroupMethods groupMethods, XmlSuite suite, Map<String, 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
- Returns:
- the test results that apply to one of the instances of the testMethod.
-
invokePooledTestMethods
private List<ITestResult> invokePooledTestMethods(ITestNGMethod testMethod, XmlSuite suite, Map<String, String> parameters, ConfigurationGroupMethods groupMethods, ITestContext testContext) Invokes a method that has a specified threadPoolSize. -
collectResults
-
invokeListenersForSkippedTestResult
- Specified by:
invokeListenersForSkippedTestResult
in interfaceITestInvoker
-
setTestStatus
-
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, Throwable throwable, ITestResult source) - 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)
-