1 package org.junit.runner; 2 3 import java.util.ArrayList ; 4 import java.util.List ; 5 6 import junit.runner.Version; 7 import org.junit.internal.runners.OldTestClassRunner; 8 import org.junit.internal.runners.TextListener; 9 import org.junit.runner.notification.Failure; 10 import org.junit.runner.notification.RunListener; 11 import org.junit.runner.notification.RunNotifier; 12 13 25 public class JUnitCore { 26 27 private RunNotifier fNotifier; 28 29 32 public JUnitCore() { 33 fNotifier= new RunNotifier(); 34 } 35 36 43 public static void main(String ... args) { 44 Result result= new JUnitCore().runMain(args); 45 killAllThreads(result); 46 } 47 48 private static void killAllThreads(Result result) { 49 System.exit(result.wasSuccessful() ? 0 : 1); 50 } 51 52 59 public static Result runClasses(Class <?>... classes) { 60 return new JUnitCore().run(classes); 61 } 62 63 66 public Result runMain(String ... args) { 67 System.out.println("JUnit version " + Version.id()); 68 List <Class <?>> classes= new ArrayList <Class <?>>(); 69 List <Failure> missingClasses= new ArrayList <Failure>(); 70 for (String each : args) 71 try { 72 classes.add(Class.forName(each)); 73 } catch (ClassNotFoundException e) { 74 System.out.println("Could not find class: " + each); 75 Description description= Description.createSuiteDescription(each); 76 Failure failure= new Failure(description, e); 77 missingClasses.add(failure); 78 } 79 RunListener listener= new TextListener(); 80 addListener(listener); 81 Result result= run(classes.toArray(new Class [0])); 82 for (Failure each : missingClasses) 83 result.getFailures().add(each); 84 return result; 85 } 86 87 90 public String getVersion() { 91 return Version.id(); 92 } 93 94 99 public Result run(Class <?>... classes) { 100 return run(Request.classes("All", classes)); 101 } 102 103 108 public Result run(Request request) { 109 return run(request.getRunner()); 110 } 111 112 117 public Result run(junit.framework.Test test) { 118 return run(new OldTestClassRunner(test)); 119 } 120 121 124 public Result run(Runner runner) { 125 Result result= new Result(); 126 RunListener listener= result.createListener(); 127 addFirstListener(listener); 128 try { 129 fNotifier.fireTestRunStarted(runner.getDescription()); 130 runner.run(fNotifier); 131 fNotifier.fireTestRunFinished(result); 132 } finally { 133 removeListener(listener); 134 } 135 return result; 136 } 137 138 private void addFirstListener(RunListener listener) { 139 fNotifier.addFirstListener(listener); 140 } 141 142 143 148 public void addListener(RunListener listener) { 149 fNotifier.addListener(listener); 150 } 151 152 156 public void removeListener(RunListener listener) { 157 fNotifier.removeListener(listener); 158 } 159 } 160 | Popular Tags |