Class Categories

All Implemented Interfaces:
Describable, Filterable, Orderable, Sortable

public class Categories extends Suite
From a given set of test classes, runs only the classes and methods that are annotated with either the category given with the @IncludeCategory annotation, or a subtype of that category.

Note that, for now, annotating suites with @Category has no effect. Categories must be annotated on the direct method or class.

Example:

 public interface FastTests {
 }

 public interface SlowTests {
 }

 public interface SmokeTests
 }

 public static class A {
     @Test
     public void a() {
         fail();
     }

     @Category(SlowTests.class)
     @Test
     public void b() {
     }

     @Category({FastTests.class, SmokeTests.class})
     @Test
     public void c() {
     }
 }

 @Category({SlowTests.class, FastTests.class})
 public static class B {
     @Test
     public void d() {
     }
 }

 @RunWith(Categories.class)
 @IncludeCategory(SlowTests.class)
 @SuiteClasses({A.class, B.class})
 // Note that Categories is a kind of Suite
 public static class SlowTestSuite {
     // Will run A.b and B.d, but not A.a and A.c
 }
 

Example to run multiple categories:

 @RunWith(Categories.class)
 @IncludeCategory({FastTests.class, SmokeTests.class})
 @SuiteClasses({A.class, B.class})
 public static class FastOrSmokeTestSuite {
     // Will run A.c and B.d, but not A.b because it is not any of FastTests or SmokeTests
 }
 
Version:
4.12
See Also:
  • Constructor Details

  • Method Details

    • getIncludedCategory

      private static Set<Class<?>> getIncludedCategory(Class<?> klass)
    • isAnyIncluded

      private static boolean isAnyIncluded(Class<?> klass)
    • getExcludedCategory

      private static Set<Class<?>> getExcludedCategory(Class<?> klass)
    • isAnyExcluded

      private static boolean isAnyExcluded(Class<?> klass)
    • hasAssignableTo

      private static boolean hasAssignableTo(Set<Class<?>> assigns, Class<?> to)
    • createSet

      private static Set<Class<?>> createSet(Class<?>[] classes)
    • nullableClassToSet

      private static Set<Class<?>> nullableClassToSet(Class<?> nullableClass)