View Javadoc
1   package org.junit.tests.manipulation;
2   
3   import static org.junit.Assert.assertTrue;
4   
5   import java.util.Arrays;
6   import java.util.List;
7   
8   import org.junit.Assert;
9   import org.junit.Test;
10  import org.junit.runner.Description;
11  import org.junit.runner.JUnitCore;
12  import org.junit.runner.Result;
13  import org.junit.runner.RunWith;
14  import org.junit.runner.manipulation.Filter;
15  import org.junit.runners.Parameterized;
16  import org.junit.runners.Parameterized.Parameters;
17  
18  public class FilterableTest {
19      public static class FilteredRunner extends Parameterized {
20          public FilteredRunner(Class<?> klass) throws Throwable {
21              super(klass);
22              filter(new Filter() {
23  
24                  @Override
25                  public boolean shouldRun(Description description) {
26                      return !description.getDisplayName().contains("skip");
27                  }
28  
29                  @Override
30                  public String describe() {
31                      return "skip methods containing the word 'skip'";
32                  }
33              });
34          }
35      }
36  
37      @RunWith(FilteredRunner.class)
38      public static class FilteredTest {
39          @Parameters
40          public static List<Object[]> parameters() {
41              return Arrays.asList(new Object[]{3}, new Object[]{4});
42          }
43  
44          public FilteredTest(int x) {
45          }
46  
47          @Test
48          public void skipThis() {
49              Assert.fail();
50          }
51  
52          @Test
53          public void runThis() {
54          }
55      }
56  
57      @Test
58      public void testFilterInRunnerConstructor() {
59          Result result = JUnitCore.runClasses(FilteredTest.class);
60          assertTrue(result.wasSuccessful());
61      }
62  }