org.junit.internal.runners.SuiteMethod Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit Show documentation
Show all versions of junit Show documentation
JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.
package org.junit.internal.runners;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import junit.framework.Test;
/**
* Runner for use with JUnit 3.8.x-style AllTests classes
* (those that only implement a static suite()
* method). For example:
*
* @RunWith(AllTests.class)
* public class ProductTests {
* public static junit.framework.Test suite() {
* ...
* }
* }
*
*/
public class SuiteMethod extends JUnit38ClassRunner {
public SuiteMethod(Class klass) throws Throwable {
super(testFromSuiteMethod(klass));
}
public static Test testFromSuiteMethod(Class klass) throws Throwable {
Method suiteMethod = null;
Test suite = null;
try {
suiteMethod = klass.getMethod("suite");
if (!Modifier.isStatic(suiteMethod.getModifiers())) {
throw new Exception(klass.getName() + ".suite() must be static");
}
suite = (Test) suiteMethod.invoke(null); // static method
} catch (InvocationTargetException e) {
throw e.getCause();
}
return suite;
}
}