diff --git a/src/main/java/org/junit/experimental/categories/Categories.java b/src/main/java/org/junit/experimental/categories/Categories.java index 0c73ed82afff..f4a01a964928 100644 --- a/src/main/java/org/junit/experimental/categories/Categories.java +++ b/src/main/java/org/junit/experimental/categories/Categories.java @@ -278,6 +278,7 @@ private static Set> categories(Description description) { Set> categories= new HashSet>(); Collections.addAll(categories, directCategories(description)); Collections.addAll(categories, directCategories(parentDescription(description))); + Collections.addAll(categories, directCategories(declaringDescription(description))); return categories; } @@ -286,6 +287,14 @@ private static Description parentDescription(Description description) { return testClass == null ? null : Description.createSuiteDescription(testClass); } + private static Description declaringDescription(Description description) { + Class testClass = description.getTestClass(); + if (testClass != null) { + testClass = testClass.getDeclaringClass(); + } + return testClass == null ? null : Description.createSuiteDescription(testClass); + } + private static Class[] directCategories(Description description) { if (description == null) { return new Class[0];