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 classstatic @interfacestatic @interfaceNested 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 booleanhasAssignableTo(Set<Class<?>> assigns, Class<?> to) private static booleanisAnyExcluded(Class<?> klass) private static booleanisAnyIncluded(Class<?> klass) nullableClassToSet(Class<?> nullableClass) Methods inherited from class org.junit.runners.Suite
describeChild, emptySuite, getChildren, runChildMethods 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
-