/** * Runs main and exits */ private static void runMainAndExit(JUnitSystem system, String... args) { Result result = new JUnitCore().runMain(system, args); System.exit(result.wasSuccessful() ? 0 : 1); }
/** * Run the tests contained in the classes named in the <code>args</code>. * If all tests run successfully, exit with a status of 0. Otherwise exit with a status of 1. * Write feedback while tests are running and write * stack traces for all failed tests after the tests all complete. * * @param args names of classes in which to find tests to run */ public static void main(String... args) { Result result = new JUnitCore().runMain(new RealSystem(), args); System.exit(result.wasSuccessful() ? 0 : 1); }
protected void printFooter(Result result) { if (result.wasSuccessful()) { getWriter().println(); getWriter().print("OK"); getWriter().println(" (" + result.getRunCount() + " test" + (result.getRunCount() == 1 ? "" : "s") + ")"); } else { getWriter().println(); getWriter().println("FAILURES!!!"); getWriter().println("Tests run: " + result.getRunCount() + ", Failures: " + result.getFailureCount()); } getWriter().println(); }
protected void printFooter(Result result) { if (result.wasSuccessful()) { getWriter().println(); getWriter().print("OK"); getWriter().println(" (" + result.getRunCount() + " test" + (result.getRunCount() == 1 ? "" : "s") + ")"); } else { getWriter().println(); getWriter().println("FAILURES!!!"); getWriter().println("Tests run: " + result.getRunCount() + ", Failures: " + result.getFailureCount()); } getWriter().println(); }
@Test public void passesOnThirdAttempt() { Result result = TestRunner.runTest(PassesOnThirdAttempt.class); assertThat(result.wasSuccessful()).isTrue(); assertThat(PassesOnThirdAttempt.count).isEqualTo(3); }
@Test public void shouldIgnoreWhenUntilIsInFuture() { Result result = TestRunner.runTest(ShouldIgnoreWhenUntilIsInFuture.class); assertThat(result.wasSuccessful()).isTrue(); assertThat(ShouldIgnoreWhenUntilIsInFuture.count).isEqualTo(0); }
@Test public void passesWithOne() { Result result = TestRunner.runTest(PassesWithOne.class); assertThat(result.wasSuccessful()).isTrue(); }
@Test public void providesExecutorService() { Result result = TestRunner.runTest(HasExecutorService.class); assertThat(result.wasSuccessful()).isTrue(); assertThat(executorService).isInstanceOf(ExecutorService.class); }
@Test public void failsUnused() { Result result = TestRunner.runTest(FailsUnused.class); assertThat(result.wasSuccessful()).isFalse(); List<Failure> failures = result.getFailures(); assertThat(failures.size()).as("Failures: " + failures).isEqualTo(1); Failure failure = failures.get(0); assertThat(failure.getException()).isExactlyInstanceOf(AssertionError.class) .hasMessage(FailsUnused.message); assertThat(FailsUnused.count).isEqualTo(1); }
@Test public void failsOnSecondAttempt() { Result result = TestRunner.runTest(FailsOnSecondAttempt.class); assertThat(result.wasSuccessful()).isFalse(); List<Failure> failures = result.getFailures(); assertThat(failures.size()).as("Failures: " + failures).isEqualTo(1); Failure failure = failures.get(0); assertThat(failure.getException()).isExactlyInstanceOf(AssertionError.class) .hasMessage(FailsOnSecondAttempt.message); assertThat(FailsOnSecondAttempt.count).isEqualTo(2); }
@Test public void failsOnSecondAttempt() { Result result = TestRunner.runTest(FailsOnSecondAttempt.class); assertThat(result.wasSuccessful()).isFalse(); List<Failure> failures = result.getFailures(); assertThat(failures.size()).as("Failures: " + failures).isEqualTo(1); Failure failure = failures.get(0); assertThat(failure.getException()).isExactlyInstanceOf(CustomException.class) .hasMessage(FailsOnSecondAttempt.message); assertThat(FailsOnSecondAttempt.count).isEqualTo(2); }
@Test public void failsOnSecondAttempt() { Result result = TestRunner.runTest(FailsOnSecondAttempt.class); assertThat(result.wasSuccessful()).isFalse(); List<Failure> failures = result.getFailures(); assertThat(failures.size()).as("Failures: " + failures).isEqualTo(1); Failure failure = failures.get(0); assertThat(failure.getException()).isExactlyInstanceOf(AssertionError.class) .hasMessage(FailsOnSecondAttempt.message); assertThat(FailsOnSecondAttempt.count).isEqualTo(2); }
@Test public void failsOnThirdAttempt() { Result result = TestRunner.runTest(FailsOnThirdAttempt.class); assertThat(result.wasSuccessful()).isFalse(); List<Failure> failures = result.getFailures(); assertThat(failures.size()).as("Failures: " + failures).isEqualTo(1); Failure failure = failures.get(0); assertThat(failure.getException()).isExactlyInstanceOf(AssertionError.class) .hasMessage(FailsOnThirdAttempt.message); assertThat(FailsOnThirdAttempt.count).isEqualTo(3); }
@Test public void shouldExecuteWhenUntilIsDefault() { Result result = TestRunner.runTest(ShouldExecuteWhenUntilIsDefault.class); assertThat(result.wasSuccessful()).isFalse(); List<Failure> failures = result.getFailures(); assertThat(failures.size()).as("Failures: " + failures).isEqualTo(1); Failure failure = failures.get(0); assertThat(failure.getException()).isExactlyInstanceOf(AssertionError.class) .hasMessage(ASSERTION_ERROR_MESSAGE); assertThat(ShouldExecuteWhenUntilIsDefault.count).isEqualTo(1); }
@Test public void failsWithoutExpectedException() { Result result = TestRunner.runTest(FailsWithoutExpectedException.class); assertThat(result.wasSuccessful()).isFalse(); List<Failure> failures = result.getFailures(); assertThat(failures.size()).as("Failures: " + failures).isEqualTo(1); Failure failure = failures.get(0); assertThat(failure.getException()).isExactlyInstanceOf(AssertionError.class) .hasMessage("Expected test to throw an instance of " + TimeoutException.class.getName()); }
@Test public void shouldRestoreLocaleInAfter() throws Throwable { Locale originalLocale = Locale.getDefault(); Result result = TestRunner.runTest(ShouldRestoreLocaleInAfter.class); assertTrue(result.wasSuccessful()); assertThat(Locale.getDefault(), is(originalLocale)); assertThat(ShouldRestoreLocaleInAfter.localeInTest, is(notDefaultLocale)); }
@Test public void setInitLocaleShouldRestoreLocaleInAfter() throws Throwable { Locale originalLocale = Locale.getDefault(); Result result = TestRunner.runTest(SetInitLocaleShouldRestoreLocaleInAfter.class); assertTrue(result.wasSuccessful()); assertThat(Locale.getDefault(), is(originalLocale)); assertThat(SetInitLocaleShouldRestoreLocaleInAfter.localeInTest, is(Locale.ENGLISH)); }
@Test public void setInitLocaleShouldRestoreLocaleInAfterWithConsumer() throws Throwable { Locale originalLocale = Locale.getDefault(); Result result = TestRunner.runTest(SetInitLocaleShouldRestoreLocaleInAfterWithConsumer.class); assertTrue(result.wasSuccessful()); assertThat(Locale.getDefault(), is(originalLocale)); assertThat(SetInitLocaleShouldRestoreLocaleInAfterWithConsumer.localeInTest, is(Locale.CHINESE)); assertThat(SetInitLocaleShouldRestoreLocaleInAfterWithConsumer.locales.size(), is(2)); assertThat(SetInitLocaleShouldRestoreLocaleInAfterWithConsumer.locales, contains(Locale.CHINESE, originalLocale)); }
private void assertNoFailures(Result result) { if (!result.wasSuccessful()) { for (Failure failure : result.getFailures()) { fail(failure.getMessage()); } } }
private void runTestAndVerifyHierarchies(Class<? extends FooTestCase> testClass, boolean isFooContextActive, boolean isBarContextActive, boolean isBazContextActive) { JUnitCore jUnitCore = new JUnitCore(); Result result = jUnitCore.run(testClass); assertTrue("all tests passed", result.wasSuccessful()); assertThat(ContextHierarchyDirtiesContextTests.context, notNullValue()); ConfigurableApplicationContext bazContext = (ConfigurableApplicationContext) ContextHierarchyDirtiesContextTests.context; assertEquals("baz", ContextHierarchyDirtiesContextTests.baz); assertThat("bazContext#isActive()", bazContext.isActive(), is(isBazContextActive)); ConfigurableApplicationContext barContext = (ConfigurableApplicationContext) bazContext.getParent(); assertThat(barContext, notNullValue()); assertEquals("bar", ContextHierarchyDirtiesContextTests.bar); assertThat("barContext#isActive()", barContext.isActive(), is(isBarContextActive)); ConfigurableApplicationContext fooContext = (ConfigurableApplicationContext) barContext.getParent(); assertThat(fooContext, notNullValue()); assertEquals("foo", ContextHierarchyDirtiesContextTests.foo); assertThat("fooContext#isActive()", fooContext.isActive(), is(isFooContextActive)); }