All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.testng.internal.InstanceBasedParallelParallelWorker Maven / Gradle / Ivy

There is a newer version: 7.10.1
Show newest version
package org.testng.internal;

import org.testng.IMethodInstance;
import org.testng.ITestNGMethod;
import org.testng.collections.ListMultiMap;
import org.testng.collections.Lists;
import org.testng.collections.Maps;
import org.testng.thread.IWorker;

import java.util.List;
import java.util.Map;

class InstanceBasedParallelParallelWorker extends AbstractParallelWorker {
  @Override
  public List> createWorkers(Arguments arguments) {
    ListMultiMap lmm = Maps.newSortedListMultiMap();
    for (ITestNGMethod m : arguments.getMethods()) {
      lmm.put(m.getInstance(), m);
    }
    List> result = Lists.newArrayList();
    IInvoker invoker = arguments.getInvoker();
    ITestInvoker testInvoker = invoker.getTestInvoker();
    IConfigInvoker configInvoker = invoker.getConfigInvoker();
    for (Map.Entry> es : lmm.entrySet()) {
      List methodInstances = MethodHelper.methodsToMethodInstances(es.getValue());
      TestMethodWorker tmw =
          new TestMethodWorker(
              testInvoker, configInvoker, methodInstances,
              arguments.getTestContext().getCurrentXmlTest().getAllParameters(),
              arguments.getConfigMethods(),
              arguments.getClassMethodMap(),
              arguments.getTestContext(),
              arguments.getListeners());
      result.add(tmw);
    }

    return result;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy