写了个简单的 junit 启动器。
class="java">
package junit.samples;
import java.lang.reflect.Method;
import org.junit.Test;
import org.junit.internal.requests.ClassRequest;
import org.junit.runner.Runner;
import org.junit.runner.notification.RunNotifier;
import org.junit.runners.BlockJUnit4ClassRunner;
/**
* Some simple tests.
*/
public class SimpleTestAnnotation {
protected int fValue1;
protected int fValue2;
@Test
public void sayHello() {
System.out.println("hello");
//Thread.dumpStack();
//int zero= 0;
//int result= 8 / zero;
}
@Test
public void sayGoodbye() {
System.out.println("good bye");
//Thread.dumpStack();
//int zero= 0;
//int result= 8 / zero;
}
public static void doTest_02() throws Exception {
SimpleTestAnnotation st= new SimpleTestAnnotation();
Method[] ms= SimpleTestAnnotation.class.getDeclaredMethods();
for (int i= 0; i < ms.length; i++) {
System.out.println("m:" + ms[i]);
if (ms[i].isAnnotationPresent(Test.class)) {
System.out.println("isAnnotationPresent");
try {
ms[i].invoke(st);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void doTest_03() throws Exception {
ClassRequest cr = new ClassRequest(SimpleTestAnnotation.class);
BlockJUnit4ClassRunner runner = (BlockJUnit4ClassRunner)cr.getRunner();
//System.out.println("runner:" + runner);
RunNotifier rn = new RunNotifier();
runner.run(rn);
}
public static void main(String[] args) throws Exception {
//doTest_02();
doTest_03();
}
}