use of org.junit.runner.manipulation.Filter in project gradle by gradle.
the class JUnitTestClassExecuter method runTestClass.
private void runTestClass(String testClassName) throws ClassNotFoundException {
final Class<?> testClass = Class.forName(testClassName, false, applicationClassLoader);
List<Filter> filters = new ArrayList<Filter>();
if (options.hasCategoryConfiguration()) {
verifyJUnitCategorySupport();
Transformer<Class<?>, String> transformer = new Transformer<Class<?>, String>() {
public Class<?> transform(final String original) {
try {
return applicationClassLoader.loadClass(original);
} catch (ClassNotFoundException e) {
throw new InvalidUserDataException(String.format("Can't load category class [%s].", original), e);
}
}
};
filters.add(new CategoryFilter(CollectionUtils.collect(options.getIncludeCategories(), transformer), CollectionUtils.collect(options.getExcludeCategories(), transformer)));
}
Request request = Request.aClass(testClass);
Runner runner = request.getRunner();
if (!options.getIncludedTests().isEmpty()) {
TestSelectionMatcher matcher = new TestSelectionMatcher(options.getIncludedTests());
// 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);
}
use of org.junit.runner.manipulation.Filter in project bazel by bazelbuild.
the class JUnit4Runner method run.
/**
* Runs the JUnit4 test.
*
* @return Result of running the test
*/
public Result run() {
testRunnerOut.println("JUnit4 Test Runner");
checkJUnitRunnerApiVersion();
for (Initializer init : initializers) {
init.initialize();
}
// Sharding
TestSuiteModel model = modelSupplier.get();
Filter shardingFilter = model.getShardingFilter();
Request filteredRequest = applyFilters(request, shardingFilter, config.getTestIncludeFilterRegexp(), config.getTestExcludeFilterRegexp());
JUnitCore core = new JUnitCore();
for (RunListener runListener : runListeners) {
core.addListener(runListener);
}
File exitFile = getExitFile();
exitFileActive(exitFile);
try {
try {
if (config.shouldInstallSecurityManager()) {
installSecurityManager();
}
Request cancellableRequest = requestFactory.createRequest(filteredRequest);
return core.run(cancellableRequest);
} finally {
disableSecurityManager();
}
} finally {
exitFileInactive(exitFile);
}
}
use of org.junit.runner.manipulation.Filter in project junit5 by junit-team.
the class OrFilterTests method evaluatesMultipleFilters.
@Test
void evaluatesMultipleFilters() {
Filter filter1 = mockFilter("foo", false);
Filter filter2 = mockFilter("bar", true);
OrFilter orFilter = new OrFilter(asList(filter1, filter2));
assertEquals("foo OR bar", orFilter.describe());
Description description = Description.createTestDescription(getClass(), "evaluatesMultipleFilters");
assertTrue(orFilter.shouldRun(description));
verify(filter1).shouldRun(same(description));
verify(filter2).shouldRun(same(description));
}
use of org.junit.runner.manipulation.Filter in project junit5 by junit-team.
the class OrFilterTests method mockFilter.
private Filter mockFilter(String description, boolean result) {
Filter filter = mock(Filter.class);
when(filter.describe()).thenReturn(description);
when(filter.shouldRun(any())).thenReturn(result);
return filter;
}
use of org.junit.runner.manipulation.Filter in project junit-dataprovider by TNG.
the class DataProviderRunnerTest method testFilterShould.
@Test
public void testFilterShould() throws Exception {
// Given:
Filter filter = Filter.ALL;
// When:
underTest.filter(filter);
// Then:
assertThat(underTest.getDescription().getChildren().size()).isGreaterThan(0);
}
Aggregations