org.junit.experimental.categories
Class Categories

java.lang.Object
  extended by org.junit.runner.Runner
      extended by org.junit.runners.ParentRunner<Runner>
          extended by org.junit.runners.Suite
              extended by org.junit.experimental.categories.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
 }
 

See Also:
Categories at JUnit wiki

Nested Class Summary
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
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, createTestClass, filter, getDescription, getName, getRunnerAnnotations, getTestClass, isIgnored, order, run, runLeaf, setScheduler, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses, withInterruptIsolation
 
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


Copyright © 2002–2021 JUnit. All rights reserved.