package org.pitest.testng;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
import org.testng.TestNG;
import org.testng.xml.XmlSuite;
public class ForeignClassLoaderTestNGExecutor implements Callable<List<String>> {
private final XmlSuite suite;
public ForeignClassLoaderTestNGExecutor(XmlSuite suite) {
this.suite = suite;
}
@Override
public List<String> call() throws Exception {
List<String> queue = new ArrayList<String>();
final ForeignClassLoaderAdaptingListener listener = new ForeignClassLoaderAdaptingListener(queue);
final TestNG testng = new TestNG(false);
testng.setDefaultSuiteName(this.suite.getName());
testng.setXmlSuites(Collections.singletonList(this.suite));
testng.addListener(listener);
testng.addInvokedMethodListener(new FailFast(listener));
testng.run();
return queue;
}
}