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
,Orderable
,Sortable
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static @interface
static @interface
Nested classes/interfaces inherited from class org.junit.runners.Suite
Suite.SuiteClasses
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetExcludedCategory
(Class<?> klass) getIncludedCategory
(Class<?> klass) private static boolean
hasAssignableTo
(Set<Class<?>> assigns, Class<?> to) private static boolean
isAnyExcluded
(Class<?> klass) private static boolean
isAnyIncluded
(Class<?> klass) nullableClassToSet
(Class<?> nullableClass) 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
-
Constructor Details
-
Categories
- Throws:
InitializationError
-
-
Method Details
-
getIncludedCategory
-
isAnyIncluded
-
getExcludedCategory
-
isAnyExcluded
-
hasAssignableTo
-
createSet
-
nullableClassToSet
-