use of org.junit.runner.manipulation.Filter in project junit4 by junit-team.
the class MaxStarterTest method filterSingleMethodFromOldTestClass.
@Test
public void filterSingleMethodFromOldTestClass() throws Exception {
final Description method = Description.createTestDescription(TwoOldTests.class, "testOne");
Filter filter = Filter.matchMethodDescription(method);
JUnit38ClassRunner child = new JUnit38ClassRunner(TwoOldTests.class);
child.filter(filter);
assertEquals(1, child.testCount());
}
use of org.junit.runner.manipulation.Filter in project junit4 by junit-team.
the class MaxStarterTest method assertFilterLeavesTestUnscathed.
private void assertFilterLeavesTestUnscathed(Class<?> testClass) {
Request oneClass = Request.aClass(testClass);
Request filtered = oneClass.filterWith(new Filter() {
@Override
public boolean shouldRun(Description description) {
return true;
}
@Override
public String describe() {
return "Everything";
}
});
int filterCount = filtered.getRunner().testCount();
int coreCount = oneClass.getRunner().testCount();
assertEquals("Counts match up in " + testClass, coreCount, filterCount);
}
use of org.junit.runner.manipulation.Filter in project gradle by gradle.
the class JUnitTestClassExecutor method allTestsFiltered.
private boolean allTestsFiltered(Runner runner, List<Filter> filters) {
LinkedList<Description> queue = new LinkedList<Description>();
queue.add(runner.getDescription());
while (!queue.isEmpty()) {
Description description = queue.removeFirst();
queue.addAll(description.getChildren());
boolean run = true;
for (Filter filter : filters) {
if (!filter.shouldRun(description)) {
run = false;
break;
}
}
if (run) {
return false;
}
}
return true;
}
use of org.junit.runner.manipulation.Filter in project gradle by gradle.
the class JUnitTestClassExecutor method runTestClass.
private void runTestClass(String testClassName) throws ClassNotFoundException {
final Class<?> testClass = Class.forName(testClassName, false, applicationClassLoader);
if (isNestedClassInsideEnclosedRunner(testClass)) {
return;
}
List<Filter> filters = new ArrayList<Filter>();
if (options.hasCategoryConfiguration()) {
verifyJUnitCategorySupport();
filters.add(new CategoryFilter(options.getIncludeCategories(), options.getExcludeCategories(), applicationClassLoader));
}
Request request = Request.aClass(testClass);
Runner runner = request.getRunner();
if (!options.getIncludedTests().isEmpty() || !options.getIncludedTestsCommandLine().isEmpty() || !options.getExcludedTests().isEmpty()) {
TestSelectionMatcher matcher = new TestSelectionMatcher(options.getIncludedTests(), options.getExcludedTests(), options.getIncludedTestsCommandLine());
// matches the filter, run the entire suite instead of filtering away its contents.
if (!runner.getDescription().isSuite() || !matcher.matchesTest(testClassName, null)) {
filters.add(new MethodNameFilter(matcher));
}
}
if (runner instanceof Filterable) {
Filterable filterable = (Filterable) runner;
for (Filter filter : filters) {
try {
filterable.filter(filter);
} catch (NoTestsRemainException e) {
// Ignore
return;
}
}
} else if (allTestsFiltered(runner, filters)) {
return;
}
RunNotifier notifier = new RunNotifier();
notifier.addListener(listener);
runner.run(notifier);
}
Aggregations