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++
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     1
package org.junit.runner;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     2
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     3
import java.lang.annotation.ElementType;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     4
import java.lang.annotation.Inherited;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     5
import java.lang.annotation.Retention;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     6
import java.lang.annotation.RetentionPolicy;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     7
import java.lang.annotation.Target;
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     8
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     9
/**
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    10
 * When a class is annotated with <code>&#064;RunWith</code> or extends a class annotated 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    11
 * with <code>&#064;RunWith</code>, JUnit will invoke the class it references to run the 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    12
 * tests in that class instead of the runner built into JUnit. We added this feature late 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    13
 * in development. While it seems powerful we expect the runner API to change as we learn 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    14
 * how people really use it. Some of the classes that are currently internal will likely 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    15
 * be refined and become public.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    16
 * 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    17
 * For example, suites in JUnit 4 are built using RunWith, and a custom runner named Suite:
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    18
 * 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    19
 * <pre>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    20
 * &#064;RunWith(Suite.class)
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    21
 * &#064;SuiteClasses(ATest.class, BTest.class, CTest.class)
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    22
 * public class ABCSuite {
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    23
 * }
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    24
 * </pre>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    25
 */
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    26
@Retention(RetentionPolicy.RUNTIME)
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    27
@Target(ElementType.TYPE)
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    28
@Inherited
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    29
public @interface RunWith {
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    30
	/**
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    31
	 * @return a Runner class (must have a constructor that takes a single Class to run)
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    32
	 */
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    33
	Class<? extends Runner> value();
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    34
}