Best junit code snippet using org.junit.runners.ParentRunner.describeChild
Source:ParentRunner.java  
...49        }50    };51    private final TestClass testClass;52    /* access modifiers changed from: protected */53    public abstract Description describeChild(T t);54    /* access modifiers changed from: protected */55    public abstract List<T> getChildren();56    /* access modifiers changed from: protected */57    public abstract void runChild(T t, RunNotifier runNotifier);58    protected ParentRunner(Class<?> testClass2) throws InitializationError {59        this.testClass = createTestClass(testClass2);60        validate();61    }62    /* access modifiers changed from: protected */63    public TestClass createTestClass(Class<?> testClass2) {64        return new TestClass(testClass2);65    }66    /* access modifiers changed from: protected */67    public void collectInitializationErrors(List<Throwable> errors) {68        validatePublicVoidNoArgMethods(BeforeClass.class, true, errors);69        validatePublicVoidNoArgMethods(AfterClass.class, true, errors);70        validateClassRules(errors);71        applyValidators(errors);72    }73    private void applyValidators(List<Throwable> errors) {74        if (getTestClass().getJavaClass() != null) {75            for (TestClassValidator each : VALIDATORS) {76                errors.addAll(each.validateTestClass(getTestClass()));77            }78        }79    }80    /* access modifiers changed from: protected */81    public void validatePublicVoidNoArgMethods(Class<? extends Annotation> annotation, boolean isStatic, List<Throwable> errors) {82        for (FrameworkMethod eachTestMethod : getTestClass().getAnnotatedMethods(annotation)) {83            eachTestMethod.validatePublicVoidNoArg(isStatic, errors);84        }85    }86    private void validateClassRules(List<Throwable> errors) {87        RuleMemberValidator.CLASS_RULE_VALIDATOR.validate(getTestClass(), errors);88        RuleMemberValidator.CLASS_RULE_METHOD_VALIDATOR.validate(getTestClass(), errors);89    }90    /* access modifiers changed from: protected */91    public Statement classBlock(RunNotifier notifier) {92        Statement statement = childrenInvoker(notifier);93        if (!areAllChildrenIgnored()) {94            return withClassRules(withAfterClasses(withBeforeClasses(statement)));95        }96        return statement;97    }98    private boolean areAllChildrenIgnored() {99        for (T child : getFilteredChildren()) {100            if (!isIgnored(child)) {101                return false;102            }103        }104        return true;105    }106    /* access modifiers changed from: protected */107    public Statement withBeforeClasses(Statement statement) {108        List<FrameworkMethod> befores = this.testClass.getAnnotatedMethods(BeforeClass.class);109        if (befores.isEmpty()) {110            return statement;111        }112        return new RunBefores(statement, befores, null);113    }114    /* access modifiers changed from: protected */115    public Statement withAfterClasses(Statement statement) {116        List<FrameworkMethod> afters = this.testClass.getAnnotatedMethods(AfterClass.class);117        if (afters.isEmpty()) {118            return statement;119        }120        return new RunAfters(statement, afters, null);121    }122    private Statement withClassRules(Statement statement) {123        List<TestRule> classRules = classRules();124        if (classRules.isEmpty()) {125            return statement;126        }127        return new RunRules(statement, classRules, getDescription());128    }129    /* access modifiers changed from: protected */130    public List<TestRule> classRules() {131        List<TestRule> result = this.testClass.getAnnotatedMethodValues(null, ClassRule.class, TestRule.class);132        result.addAll(this.testClass.getAnnotatedFieldValues(null, ClassRule.class, TestRule.class));133        return result;134    }135    /* access modifiers changed from: protected */136    public Statement childrenInvoker(final RunNotifier notifier) {137        return new Statement() {138            /* class org.junit.runners.ParentRunner.AnonymousClass2 */139            @Override // org.junit.runners.model.Statement140            public void evaluate() {141                ParentRunner.this.runChildren(notifier);142            }143        };144    }145    /* access modifiers changed from: protected */146    public boolean isIgnored(T t) {147        return false;148    }149    /* access modifiers changed from: private */150    /* access modifiers changed from: public */151    private void runChildren(final RunNotifier notifier) {152        RunnerScheduler currentScheduler = this.scheduler;153        try {154            for (final T each : getFilteredChildren()) {155                currentScheduler.schedule(new Runnable() {156                    /* class org.junit.runners.ParentRunner.AnonymousClass3 */157                    /* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: org.junit.runners.ParentRunner */158                    /* JADX WARN: Multi-variable type inference failed */159                    public void run() {160                        ParentRunner.this.runChild(each, notifier);161                    }162                });163            }164        } finally {165            currentScheduler.finished();166        }167    }168    /* access modifiers changed from: protected */169    public String getName() {170        return this.testClass.getName();171    }172    public final TestClass getTestClass() {173        return this.testClass;174    }175    /* access modifiers changed from: protected */176    public final void runLeaf(Statement statement, Description description, RunNotifier notifier) {177        EachTestNotifier eachNotifier = new EachTestNotifier(notifier, description);178        eachNotifier.fireTestStarted();179        try {180            statement.evaluate();181        } catch (AssumptionViolatedException e) {182            eachNotifier.addFailedAssumption(e);183        } catch (Throwable th) {184            eachNotifier.fireTestFinished();185            throw th;186        }187        eachNotifier.fireTestFinished();188    }189    /* access modifiers changed from: protected */190    public Annotation[] getRunnerAnnotations() {191        return this.testClass.getAnnotations();192    }193    @Override // org.junit.runner.Describable, org.junit.runner.Runner194    public Description getDescription() {195        Description description = Description.createSuiteDescription(getName(), getRunnerAnnotations());196        for (T child : getFilteredChildren()) {197            description.addChild(describeChild(child));198        }199        return description;200    }201    @Override // org.junit.runner.Runner202    public void run(RunNotifier notifier) {203        EachTestNotifier testNotifier = new EachTestNotifier(notifier, getDescription());204        try {205            classBlock(notifier).evaluate();206        } catch (AssumptionViolatedException e) {207            testNotifier.addFailedAssumption(e);208        } catch (StoppedByUserException e2) {209            throw e2;210        } catch (Throwable e3) {211            testNotifier.addFailure(e3);212        }213    }214    /* JADX DEBUG: Multi-variable search result rejected for r5v0, resolved type: org.junit.runners.ParentRunner<T> */215    /* JADX WARN: Multi-variable type inference failed */216    @Override // org.junit.runner.manipulation.Filterable217    public void filter(Filter filter) throws NoTestsRemainException {218        synchronized (this.childrenLock) {219            List<T> children = new ArrayList<>(getFilteredChildren());220            Iterator<T> iter = children.iterator();221            while (iter.hasNext()) {222                T each = iter.next();223                if (shouldRun(filter, each)) {224                    try {225                        filter.apply(each);226                    } catch (NoTestsRemainException e) {227                        iter.remove();228                    }229                } else {230                    iter.remove();231                }232            }233            this.filteredChildren = Collections.unmodifiableCollection(children);234            if (this.filteredChildren.isEmpty()) {235                throw new NoTestsRemainException();236            }237        }238    }239    @Override // org.junit.runner.manipulation.Sortable240    public void sort(Sorter sorter) {241        synchronized (this.childrenLock) {242            for (T each : getFilteredChildren()) {243                sorter.apply(each);244            }245            List<T> sortedChildren = new ArrayList<>(getFilteredChildren());246            Collections.sort(sortedChildren, comparator(sorter));247            this.filteredChildren = Collections.unmodifiableCollection(sortedChildren);248        }249    }250    private void validate() throws InitializationError {251        List<Throwable> errors = new ArrayList<>();252        collectInitializationErrors(errors);253        if (!errors.isEmpty()) {254            throw new InitializationError(errors);255        }256    }257    private Collection<T> getFilteredChildren() {258        if (this.filteredChildren == null) {259            synchronized (this.childrenLock) {260                if (this.filteredChildren == null) {261                    this.filteredChildren = Collections.unmodifiableCollection(getChildren());262                }263            }264        }265        return this.filteredChildren;266    }267    private boolean shouldRun(Filter filter, T each) {268        return filter.shouldRun(describeChild(each));269    }270    private Comparator<? super T> comparator(final Sorter sorter) {271        return new Comparator<T>() {272            /* class org.junit.runners.ParentRunner.AnonymousClass4 */273            @Override // java.util.Comparator274            public int compare(T o1, T o2) {275                return sorter.compare(ParentRunner.this.describeChild(o1), ParentRunner.this.describeChild(o2));276            }277        };278    }279    public void setScheduler(RunnerScheduler scheduler2) {280        this.scheduler = scheduler2;281    }282}...Source:IdeaSuite.java  
...47      getFilteredChildrenMethod.setAccessible(true);48      List filteredChildren = (List)getFilteredChildrenMethod.invoke(this, new Object[0]);49      for (int i = 0, filteredChildrenSize = filteredChildren.size(); i < filteredChildrenSize; i++) {50        Object child = filteredChildren.get(i);51        description.addChild(describeChild((Runner)child));52      }53    }54    catch (Exception e) {55      e.printStackTrace();56    }57    return description;58  }59  protected Description describeChild(Runner child) {60    final Description superDescription = super.describeChild(child);61    if (child instanceof ClassAwareSuiteMethod) {62      final Description description = Description.createSuiteDescription(((ClassAwareSuiteMethod)child).getKlass());63      ArrayList children = superDescription.getChildren();64      for (int i = 0, size = children.size(); i < size; i++) {65        description.addChild((Description)children.get(i));66      }67      return description;68    }69    return superDescription;70  }71  protected List getChildren() {72    final List children = super.getChildren();73    final Set allNames = new HashSet();74    for (Iterator iterator = children.iterator(); iterator.hasNext();) {75      final Object child = iterator.next();76      allNames.add(describeChild((Runner)child).getDisplayName());77    }78    for (Iterator iterator = children.iterator(); iterator.hasNext();) {79      final Object child = iterator.next();80      if (isSuite(child)) {81        skipSuiteComponents(allNames, child);82      }83    }84    for (Iterator iterator = children.iterator(); iterator.hasNext(); ) {85      Object child = iterator.next();86      if (!isSuite(child) && !allNames.contains(describeChild((Runner)child).getDisplayName())) {87        iterator.remove();88      }89    }90    return children;91  }92  private static boolean isSuite(Object child) {93    return child instanceof Suite || child instanceof SuiteMethod;94  }95  private void skipSuiteComponents(Set allNames, Object child) {96    try {97      if (child instanceof Suite) {98        final Method getChildrenMethod = Suite.class.getDeclaredMethod("getChildren", new Class[0]);99        getChildrenMethod.setAccessible(true);100        final List tests = (List)getChildrenMethod.invoke(child, new Object[0]);101        for (Iterator suiteIterator = tests.iterator(); suiteIterator.hasNext();) {102          final String displayName = describeChild((Runner)suiteIterator.next()).getDisplayName();103          if (allNames.contains(displayName)) {104            allNames.remove(displayName);105          }106        }107      } else if (child instanceof SuiteMethod) {108        final Method getChildrenMethod = JUnit38ClassRunner.class.getDeclaredMethod("getTest", new Class[0]);109        getChildrenMethod.setAccessible(true);110        final Test test = (Test)getChildrenMethod.invoke(child, new Object[0]);111        if (test instanceof TestSuite) {112          final Enumeration tests = ((TestSuite)test).tests();113          while (tests.hasMoreElements()) {114            final Test t = (Test)tests.nextElement();115            if (t instanceof TestSuite) {116              final String testDescription = ((TestSuite)t).getName();...Source:D2jTest.java  
...57                    protected String getName() {58                        return "d2j [" + f.toString() + "]";59                    }60                    @Override61                    protected Description describeChild(DexClassNode child) {62                        return Description.createTestDescription(testClass, "c [" + child.className + "]");63                    }64                    @Override65                    protected void runChild(final DexClassNode child, RunNotifier notifier) {66                        runLeaf(new Statement() {67                            @Override68                            public void evaluate() throws Throwable {69                                TestUtils.translateAndCheck(fileNode, child);70                            }71                        }, describeChild(child), notifier);72                    }73                });74            }75            this.runners = runners;76        }77        private DexFileNode readDex(Path f) {78            DexFileNode fileNode = new DexFileNode();79            DexFileReader reader = null;80            try {81                reader = new DexFileReader(ZipUtil.readDex(f));82            } catch (IOException e) {83                throw new RuntimeException("Fail to read dex:" + f);84            }85            reader.accept(fileNode);86            return fileNode;87        }88        @Override89        protected List<Runner> getChildren() {90            return runners;91        }92        @Override93        protected Description describeChild(Runner child) {94            return child.getDescription();95        }96        @Override97        protected void runChild(Runner child, RunNotifier notifier) {98            child.run(notifier);99        }100    }101}...Source:NodePathIoTestRunner.java  
...58    protected List<NodePathIoTestCase> getChildren() {59        return children;60    }61    /**62     * @see org.junit.runners.ParentRunner#describeChild(java.lang.Object)63     */64    @Override65    protected Description describeChild(NodePathIoTestCase child) {66        return Description.createTestDescription(this.testClass, child.getName());67    }68    /**69     * @see org.junit.runners.ParentRunner#runChild(java.lang.Object, org.junit.runner.notification.RunNotifier)70     */71    @Override72    protected void runChild(NodePathIoTestCase child, RunNotifier notifier) {73        Description description = this.describeChild(child);74        Statement statement = new Statement() {75            @Override76            public void evaluate() throws Throwable {77                String path = child.getPath();78                79                // Parse the path80                NodePath np = new NodePath(path);81                82                // Write that path back out to a string83                String actual = np.toString();84                85                // Compare86                String expected = path;87                Assert.assertEquals(expected, actual);...Source:ParentStatementRunner.java  
...51    protected List<DescribableStatement> getChildren() {52        return statements;53    }54    @Override55    protected Description describeChild(DescribableStatement child) {56        return child.getDescription();57    }58    @Override59    protected void runChild(final DescribableStatement child, RunNotifier notifier) {60        Description description = describeChild(child);61        Statement statement = child;62        statement = testRule.apply(statement, description);63        ParentRunnerHelper.abortingRunLeaf(statement, description, notifier);64    }65    /**66     * ParentRunner requires that the class be public.67     */68    public static class Dummy {69    }70}...Source:NeodymiumCucumberWrapper.java  
...23    {24        return cucumber.getChildren();25    }26    @Override27    protected Description describeChild(ParentRunner<?> child)28    {29        return cucumber.describeChild(child);30    }31    @Override32    protected void runChild(ParentRunner<?> child, RunNotifier notifier)33    {34        cucumber.runChild(child, notifier);35    }36    @Override37    protected Statement childrenInvoker(RunNotifier notifier)38    {39        return cucumber.childrenInvoker(notifier);40    }41    @Override42    public void setScheduler(RunnerScheduler scheduler)43    {...Source:Pump.java  
...19    protected List<ParentRunner<?>> getChildren() {20        return cucumberDelegate.getChildren();21    }22    @Override23    protected Description describeChild(ParentRunner<?> child) {24        return cucumberDelegate.describeChild(child);25    }26    @Override27    protected void runChild(ParentRunner<?> child, RunNotifier notifier) {28        cucumberDelegate.runChild(child, notifier);29    }30    @Override31    protected Statement childrenInvoker(RunNotifier notifier) {32        return cucumberDelegate.childrenInvoker(notifier);33    }34}...Source:ParentRunner$4.java  
...9  ParentRunner$4(ParentRunner paramParentRunner, Sorter paramSorter) {}10  11  public int compare(T paramT1, T paramT2)12  {13    return this.val$sorter.compare(this.this$0.describeChild(paramT1), this.this$0.describeChild(paramT2));14  }15}1617
18/* Location:           L:\local\mybackup\temp\qq_apk\com.tencent.tim\classes14.jar
19 * Qualified Name:     org.junit.runners.ParentRunner.4
20 * JD-Core Version:    0.7.0.1
...describeChild
Using AI Code Generation
1public class MyTest {2    public void test1() {3        System.out.println("Test 1");4    }5    public void test2() {6        System.out.println("Test 2");7    }8}describeChild
Using AI Code Generation
1public class ParentRunnerTest {2    public void testDescribeChild() throws Exception {3        ParentRunner<ParentRunnerTest> runner = new ParentRunner<ParentRunnerTest>(ParentRunnerTest.class) {4            protected List<ParentRunnerTest> getChildren() {5                return null;6            }7            protected Description describeChild(ParentRunnerTest child) {8                return null;9            }10            protected void runChild(ParentRunnerTest child, RunNotifier notifier) {11            }12        };13        Description description = runner.describeChild(runner);14        System.out.println(description);15    }16}describeChild
Using AI Code Generation
1import org.junit.runner.Description;2import org.junit.runner.Runner;3import org.junit.runner.notification.RunNotifier;4import org.junit.runners.ParentRunner;5import org.junit.runners.model.InitializationError;6import org.junit.runners.model.RunnerBuilder;7public class DescribeChildTest extends ParentRunner<Runner> {8    public DescribeChildTest(Class<?> klass, RunnerBuilder builder)9            throws InitializationError {10        super(klass);11    }12    protected Description describeChild(Runner child) {13        return child.getDescription();14    }15    protected void runChild(Runner child, RunNotifier notifier) {16    }17    protected java.util.List<Runner> getChildren() {18        return null;19    }20}describeChild
Using AI Code Generation
1public class ParentRunnerTest {2  public static void main(String[] args) {3    ParentRunner<?> runner = new ParentRunner<ParentRunnerTest>(ParentRunnerTest.class) {4      protected List<ParentRunner<?>> getChildren() {5        return null;6      }7      protected Description describeChild(ParentRunnerTest child) {8        return null;9      }10      protected void runChild(ParentRunnerTest child, RunNotifier notifier) {11      }12    };13    Description description = runner.describeChild(new ParentRunnerTest());14    System.out.println(description);15  }16}describeChild
Using AI Code Generation
1public void testChildDescription() throws Exception {2    Description description = Description.createSuiteDescription("test");3    Description child = Description.createTestDescription("test", "child");4    description.addChild(child);5    assertEquals("child", child.getDisplayName());6    assertEquals("test", child.getClassName());7    assertEquals("test.child", child.getMethodName());8    assertEquals("test.child", child.getDisplayName());9}10public void testChildDescription() throws Exception {11    Description description = Description.createSuiteDescription("test");12    Description child = Description.createTestDescription("test", "child");13    description.addChild(child);14    assertEquals("child", child.getDisplayName());15    assertEquals("test", child.getClassName());16    assertEquals("test.child", child.getMethodName());17    assertEquals("test.child", child.getDisplayName());18}19public void testChildDescription() throws Exception {20    Description description = Description.createSuiteDescription("test");21    Description child = Description.createTestDescription("test", "child");22    description.addChild(child);23    assertEquals("child", child.getDisplayName());24    assertEquals("test", child.getClassName());25    assertEquals("test.child", child.getMethodName());26    assertEquals("test.child", child.getDisplayName());27}28public void testChildDescription() throws Exception {29    Description description = Description.createSuiteDescription("test");30    Description child = Description.createTestDescription("test", "child");31    description.addChild(child);32    assertEquals("child", child.getDisplayName());33    assertEquals("test", child.getClassName());34    assertEquals("test.child", child.getMethodName());35    assertEquals("test.child", child.getDisplayName());36}37public void testChildDescription() throws Exception {38    Description description = Description.createSuiteDescription("test");39    Description child = Description.createTestDescription("test", "child");40    description.addChild(child);41    assertEquals("child", child.getDisplayName());42    assertEquals("test", child.getClassName());43    assertEquals("test.child", child.getMethodName());44    assertEquals("test.child", child.getDisplayName());45}describeChild
Using AI Code Generation
1org.junit.runners.ParentRunner.describeChild(ParentRunner.java: 85)2org.junit.runners.ParentRunner.access$000(ParentRunner.java: 58)3org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java: 268)4org.junit.runners.ParentRunner.run(ParentRunner.java: 363)5org.junit.runner.JUnitCore.run(JUnitCore.java: 137)6org.junit.runner.JUnitCore.run(JUnitCore.java: 115)7org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java: 43)8org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java: 82)LambdaTest also has a detailed JUnit tutorial explaining its features, importance, advanced use cases, best practices, and more to help you get started with running your automation testing scripts.
Here are the detailed JUnit testing chapters to help you get started:
You can also check out our JUnit certification if you wish to take your career in Selenium automation testing with JUnit to the next level.
Get 100 minutes of automation test minutes FREE!!
