Categories (JUnit API)
Date: 2016-08-24

org.junit.experimental.categories

## Class Categories

- java.lang.Object
- - org.junit.runner.Runner
  - - org.junit.runners.ParentRunner<Runner>
    - - org.junit.runners.Suite
      - - org.junit.experimental.categories.Categories

- All Implemented Interfaces:
    Describable, Filterable, 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 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() {

           }
       }

       @RunWith(Categories.class)
       @IncludeCategory(SlowTests.class)
       @SuiteClasses( { A.class, B.class })
       // Note that Categories is a kind of Suite
       public static class SlowTestSuite {
       }

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Categories.CategoryFilter`
    `static interface` | `Categories.ExcludeCategory`
    `static interface` | `Categories.IncludeCategory`

    - ### Nested classes/interfaces inherited from class org.junit.runners.Suite

      `Suite.SuiteClasses`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Categories(Class<?> klass, RunnerBuilder builder)`

  - ### Method Summary

    - ### Methods inherited from class org.junit.runners.Suite

      `describeChild, emptySuite, getChildren, runChild`

    - ### Methods inherited from class org.junit.runners.ParentRunner

      `childrenInvoker, classBlock, classRules, collectInitializationErrors, filter, getDescription, getName, getRunnerAnnotations, getTestClass, run, runLeaf, setScheduler, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses`

    - ### Methods inherited from class org.junit.runner.Runner

      `testCount`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Categories

          public Categories(Class<?> klass,
                            RunnerBuilder builder)
                     throws InitializationError

      Throws:
        `InitializationError`