carbidecpp20devenv/plugins/org.eclipse.test.source_3.3.0.v20080507/src/org.junit4_4.3.1/junitsrc/org/junit/runner/RunWith.java
author cawthron
Wed, 18 Mar 2009 17:21:00 -0500
changeset 1 82d1d1de1a01
permissions -rw-r--r--
import Carbide.c++

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;

/**
 * When a class is annotated with <code>&#064;RunWith</code> or extends a class annotated 
 * with <code>&#064;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.
 * 
 * For example, suites in JUnit 4 are built using RunWith, and a custom runner named Suite:
 * 
 * <pre>
 * &#064;RunWith(Suite.class)
 * &#064;SuiteClasses(ATest.class, BTest.class, CTest.class)
 * public class ABCSuite {
 * }
 * </pre>
 */
@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();
}