package org.junit.experimental.categories; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import org.junit.validator.ValidateWith; /** * Marks a test class or test method as belonging to one or more categories of tests. * The value is an array of arbitrary classes. * * This annotation is only interpreted by the Categories runner (at present). * * For example: * <pre> * public interface FastTests {} * public interface SlowTests {} * * public static class A { * @Test * public void a() { * fail(); * } * * @Category(SlowTests.class) * @Test * public void b() { * } * } * * @Category({SlowTests.class, FastTests.class}) * public static class B { * @Test * public void c() { * * } * } * </pre> * * For more usage, see code example on {@link Categories}. */ @Retention(RetentionPolicy.RUNTIME) @Inherited @ValidateWith(CategoryValidator.class) public @interface Category { Class<?>[] value(); }