private Description getRootDescription(Runner runner, DescriptionMatcher matcher) { Description current = runner.getDescription(); while (true) { List<Description> children = current.getChildren(); if (children.size() != 1 || matcher.matches(current)) return current; current = children.get(0); } }
private ITestReference createFilteredTest( Class<?> clazz, String testName, String[] failureNames) { DescriptionMatcher matcher = DescriptionMatcher.create(clazz, testName); SubForestFilter filter = new SubForestFilter(matcher); Request request = sortByFailures(Request.classWithoutSuiteMethod(clazz).filterWith(filter), failureNames); Runner runner = request.getRunner(); Description description = getRootDescription(runner, matcher); return new JUnit4TestReference(runner, description); }