package org.simpleframework.xml;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
public class TestRunner {
private final String[] suites;
public TestRunner(String... suites) {
this.suites = suites;
}
public String test() throws Exception {
List<TestSuite> list = new ArrayList<TestSuite>();
StringWriter builder = new StringWriter();
PrintWriter writer = new PrintWriter(builder);
TestScanner scanner = new TestScanner();
for(String suite : suites) {
Class type = Class.forName(suite);
TestSuite instance = (TestSuite)type.newInstance();
list.add(instance);
}
for(TestSuite suite : list) {
Class[] tests = suite.suite();
for(Class type : tests) {
try {
TestCase test = (TestCase)type.newInstance();
scanner.execute(test);
writer.printf("SUCCESS: %s%n", type);
}catch(Exception cause) {
writer.printf("FAILED: %s%n", type);
cause.printStackTrace(writer);
return builder.toString();
}
}
}
return builder.toString();
}
}