1b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotpackage org.junit.experimental.categories; 2b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 3b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotimport java.lang.annotation.Retention; 4b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotimport java.lang.annotation.RetentionPolicy; 5b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 6b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot/** 7b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * Marks a test class or test method as belonging to one or more categories of tests. 8b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * The value is an array of arbitrary classes. 9b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * 10b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * This annotation is only interpreted by the Categories runner (at present). 11b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * 12b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * For example: 13b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot<pre> 14b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public interface FastTests {} 15b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public interface SlowTests {} 16b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 17b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public static class A { 18b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot @Test 19b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public void a() { 20b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot fail(); 21b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } 22b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 23b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot @Category(SlowTests.class) 24b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot @Test 25b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public void b() { 26b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } 27b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } 28b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 29b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot @Category({SlowTests.class, FastTests.class}) 30b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public static class B { 31b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot @Test 32b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public void c() { 33b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 34b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } 35b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } 36b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot</pre> 37b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * 38b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * For more usage, see code example on {@link Categories}. 39b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot */ 40b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot@Retention(RetentionPolicy.RUNTIME) 41b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotpublic @interface Category { 42b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot Class<?>[] value(); 43b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot}