private static boolean isSequential( org.testng.annotations.ITestAnnotation test, XmlTest xmlTest) { return test != null && test.getSingleThreaded() || XmlSuite.ParallelMode.CLASSES.equals(xmlTest.getParallel()); }
private static boolean isSequential(org.testng.annotations.ITestAnnotation test, XmlTest xmlTest) { return test != null && (test.getSequential() || test.getSingleThreaded()) || XmlSuite.ParallelMode.CLASSES.equals(xmlTest.getParallel()); }
public enum PriorityWeight { groupByInstance, preserveOrder, priority, dependsOnGroups, dependsOnMethods }
maybeAdd(result, sp2, "verbose", t.getVerbose(), XmlSuite.DEFAULT_VERBOSE); maybeAdd(result, sp2, "timeOut", t.getTimeOut(), null); maybeAdd(result, sp2, "parallel", t.getParallel(), XmlSuite.DEFAULT_PARALLEL); maybeAdd(result, sp2, "skipFailedInvocationCounts", t.skipFailedInvocationCounts(), XmlSuite.DEFAULT_SKIP_FAILED_INVOCATION_COUNTS);
protected static void invokeWithTimeout(ITestNGMethod tm, Object instance, Object[] parameterValues, ITestResult testResult, IHookable hookable) throws InterruptedException, ThreadExecutionException { if (ThreadUtil.isTestNGThread() && testResult.getTestContext().getCurrentXmlTest().getParallel() != XmlSuite.ParallelMode.TESTS) { // We are already running in our own executor, don't create another one (or we will // lose the time out of the enclosing executor). invokeWithTimeoutWithNoExecutor(tm, instance, parameterValues, testResult, hookable); } else { invokeWithTimeoutWithNewExecutor(tm, instance, parameterValues, testResult, hookable); } }
public enum PriorityWeight { groupByInstance, preserveOrder, priority, dependsOnGroups, dependsOnMethods }
maybeAdd(result, sp2, "verbose", t.getVerbose(), XmlSuite.DEFAULT_VERBOSE); maybeAdd(result, sp2, "timeOut", t.getTimeOut(), null); maybeAdd(result, sp2, "parallel", t.getParallel(), XmlSuite.DEFAULT_PARALLEL); maybeAdd( result,
protected static void invokeWithTimeout( ITestNGMethod tm, Object instance, Object[] parameterValues, ITestResult testResult, IHookable hookable) throws InterruptedException, ThreadExecutionException { if (ThreadUtil.isTestNGThread() && testResult.getTestContext().getCurrentXmlTest().getParallel() != XmlSuite.ParallelMode.TESTS) { // We are already running in our own executor, don't create another one (or we will // lose the time out of the enclosing executor). invokeWithTimeoutWithNoExecutor(tm, instance, parameterValues, testResult, hookable); } else { invokeWithTimeoutWithNewExecutor(tm, instance, parameterValues, testResult, hookable); } }
boolean parallel = xmlTest.getParallel().isParallel();
/** * Create a list of workers to run the methods passed in parameter. * Each test method is run in its own worker except in the following cases: * - The method belongs to a class that has @Test(sequential=true) * - The parallel attribute is set to "classes" * In both these cases, all the methods belonging to that class will then * be put in the same worker in order to run in the same thread. */ @Override public List<IWorker<ITestNGMethod>> createWorkers(List<ITestNGMethod> methods) { AbstractParallelWorker.Arguments args = new AbstractParallelWorker.Arguments.Builder() .classMethodMap(this.m_classMethodMap) .configMethods(this.m_groupMethods) .finder(this.m_annotationFinder) .invoker(this.m_invoker) .methods(methods) .testContext(this) .listeners(this.m_classListeners.values()).build(); return AbstractParallelWorker.newWorker(m_xmlTest.getParallel()).createWorkers(args); }
p.setProperty("name", xmlTest.getName()); XmlUtils.setProperty(p, "junit", Boolean.toString(xmlTest.isJUnit()), XmlSuite.DEFAULT_JUNIT.toString()); XmlUtils.setProperty(p, "parallel", xmlTest.getParallel().toString(), XmlSuite.DEFAULT_PARALLEL.toString()); XmlUtils.setProperty(p, "verbose", Integer.toString(xmlTest.getVerbose()), XmlSuite.DEFAULT_VERBOSE.toString());
boolean parallel = xmlTest.getParallel().isParallel();
/** * Create a list of workers to run the methods passed in parameter. Each test method is run in its * own worker except in the following cases: - The method belongs to a class that * has @Test(sequential=true) - The parallel attribute is set to "classes" In both these cases, * all the methods belonging to that class will then be put in the same worker in order to run in * the same thread. */ @Override public List<IWorker<ITestNGMethod>> createWorkers(List<ITestNGMethod> methods) { AbstractParallelWorker.Arguments args = new AbstractParallelWorker.Arguments.Builder() .classMethodMap(this.m_classMethodMap) .configMethods(this.m_groupMethods) .finder(this.m_annotationFinder) .invoker(this.m_invoker) .methods(methods) .testContext(this) .listeners(this.m_classListeners.values()) .build(); return AbstractParallelWorker.newWorker(m_xmlTest.getParallel()).createWorkers(args); }
/** * Clone the <TT>source</TT> <CODE>XmlTest</CODE> by including: * - test attributes * - groups definitions * - parameters * * The <classes> sub element is ignored for the moment. * * @return a clone of the current XmlTest */ @Override public Object clone() { XmlTest result = new XmlTest(getSuite()); result.setName(getName()); result.setIncludedGroups(getIncludedGroups()); result.setExcludedGroups(getExcludedGroups()); result.setJUnit(isJUnit()); result.setParallel(getParallel()); result.setVerbose(getVerbose()); result.setParameters(getLocalParameters()); result.setXmlPackages(getXmlPackages()); result.setTimeOut(getTimeOut()); Map<String, List<String>> metagroups = getMetaGroups(); for (Map.Entry<String, List<String>> group: metagroups.entrySet()) { result.addMetaGroup(group.getKey(), group.getValue()); } return result; }
p, "junit", Boolean.toString(xmlTest.isJUnit()), XmlSuite.DEFAULT_JUNIT.toString()); XmlUtils.setProperty( p, "parallel", xmlTest.getParallel().toString(), XmlSuite.DEFAULT_PARALLEL.toString()); XmlUtils.setProperty( p, "verbose", Integer.toString(xmlTest.getVerbose()), XmlSuite.DEFAULT_VERBOSE.toString());
&& xmlTest.getParallel() == XmlSuite.ParallelMode.NONE && xmlTest.getPreserveOrder()) {
/** * Clone the <TT>source</TT> <CODE>XmlTest</CODE> by including: - test attributes - groups * definitions - parameters * * <p>The <classes> sub element is ignored for the moment. * * @return a clone of the current XmlTest */ @Override public Object clone() { XmlTest result = new XmlTest(getSuite()); result.setName(getName()); result.setIncludedGroups(getIncludedGroups()); result.setExcludedGroups(getExcludedGroups()); result.setJUnit(isJUnit()); result.setParallel(getParallel()); result.setVerbose(getVerbose()); result.setParameters(getLocalParameters()); result.setXmlPackages(getXmlPackages()); result.setTimeOut(getTimeOut()); Map<String, List<String>> metagroups = getMetaGroups(); for (Map.Entry<String, List<String>> group : metagroups.entrySet()) { result.addMetaGroup(group.getKey(), group.getValue()); } return result; }
/** * Generate testng-failed.xml */ private void createXmlTest(ITestContext context, List<ITestNGMethod> methods, XmlTest srcXmlTest) { XmlTest xmlTest = new XmlTest(m_xmlSuite); xmlTest.setName(context.getName() + "(failed)"); xmlTest.setBeanShellExpression(srcXmlTest.getExpression()); xmlTest.setIncludedGroups(srcXmlTest.getIncludedGroups()); xmlTest.setExcludedGroups(srcXmlTest.getExcludedGroups()); xmlTest.setParallel(srcXmlTest.getParallel()); xmlTest.setParameters(srcXmlTest.getLocalParameters()); xmlTest.setJUnit(srcXmlTest.isJUnit()); List<XmlClass> xmlClasses = createXmlClasses(methods, srcXmlTest); xmlTest.setXmlClasses(xmlClasses); }
&& xmlTest.getParallel() == XmlSuite.ParallelMode.NONE && xmlTest.getPreserveOrder()) {
/** Generate testng-failed.xml */ private void createXmlTest( ITestContext context, List<ITestNGMethod> methods, XmlTest srcXmlTest) { XmlTest xmlTest = new XmlTest(m_xmlSuite); xmlTest.setName(context.getName() + "(failed)"); xmlTest.setScript(srcXmlTest.getScript()); xmlTest.setIncludedGroups(srcXmlTest.getIncludedGroups()); xmlTest.setExcludedGroups(srcXmlTest.getExcludedGroups()); xmlTest.setParallel(srcXmlTest.getParallel()); xmlTest.setParameters(srcXmlTest.getLocalParameters()); xmlTest.setJUnit(srcXmlTest.isJUnit()); List<XmlClass> xmlClasses = createXmlClasses(methods, srcXmlTest); xmlTest.setXmlClasses(xmlClasses); }