001package org.junit.experimental.categories;
002
003import java.lang.annotation.Inherited;
004import java.lang.annotation.Retention;
005import java.lang.annotation.RetentionPolicy;
006
007/**
008 * Marks a test class or test method as belonging to one or more categories of tests.
009 * The value is an array of arbitrary classes.
010 *
011 * This annotation is only interpreted by the Categories runner (at present).
012 *
013 * For example:
014 * <pre>
015 * public interface FastTests {}
016 * public interface SlowTests {}
017 *
018 * public static class A {
019 * &#064;Test
020 * public void a() {
021 * fail();
022 * }
023 *
024 * &#064;Category(SlowTests.class)
025 * &#064;Test
026 * public void b() {
027 * }
028 * }
029 *
030 * &#064;Category({SlowTests.class, FastTests.class})
031 * public static class B {
032 * &#064;Test
033 * public void c() {
034 *
035 * }
036 * }
037 * </pre>
038 *
039 * For more usage, see code example on {@link Categories}.
040 */
041@Retention(RetentionPolicy.RUNTIME)
042@Inherited
043public @interface Category {
044    Class<?>[] value();
045}