blob: f1f5060a1941ea73bb6c2bedd0cc1c3dccdb7f49 [file] [log] [blame]
package org.junit.tests.manipulation;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.Description;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.RunWith;
import org.junit.runner.manipulation.Filter;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
public class FilterableTest {
public static class FilteredRunner extends Parameterized {
public FilteredRunner(Class<?> klass) throws Throwable {
super(klass);
filter(new Filter() {
@Override
public boolean shouldRun(Description description) {
return !description.getDisplayName().contains("skip");
}
@Override
public String describe() {
return "skip methods containing the word 'skip'";
}
});
}
}
@RunWith(FilteredRunner.class)
public static class FilteredTest {
@Parameters
public static List<Object[]> parameters() {
return Arrays.asList(new Object[]{3}, new Object[]{4});
}
public FilteredTest(int x) {
}
@Test
public void skipThis() {
Assert.fail();
}
@Test
public void runThis() {
}
}
@Test
public void testFilterInRunnerConstructor() {
Result result = JUnitCore.runClasses(FilteredTest.class);
assertTrue(result.wasSuccessful());
}
}