package org.junit.runner;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
//TODO add simple example
/**
* When a class is annotated with <code>@RunWith</code> or extends a class annotated with
* <code>@RunWith</code>,
* JUnit will invoke
* the class it references to run the tests in that class instead of the runner
* built into JUnit. We added this feature late in development. While it
* seems powerful we expect the runner API to change as we learn how people
* really use it. Some of the classes that are currently internal will likely be refined
* and become public.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface RunWith {
/**
* @return a Runner class (must have a constructor that takes a single Class to run)
*/
Class<? extends Runner> value();
}