package org.junit.tests.running.classes; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import org.junit.Test; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.model.InitializationError; public class UseSuiteAsASuperclassTest { public static class TestA { @Test public void pass() { } } public static class TestB { @Test public void dontPass() { fail(); } } public static class MySuite extends Suite { public MySuite(Class<?> klass) throws InitializationError { super(klass, new Class[]{TestA.class, TestB.class}); } } @RunWith(MySuite.class) public static class AllWithMySuite { } @Test public void ensureTestsAreRun() { JUnitCore core = new JUnitCore(); Result result = core.run(AllWithMySuite.class); assertEquals(2, result.getRunCount()); assertEquals(1, result.getFailureCount()); } }