@RepeatedTest(10) void runTestsInParallel() { Launcher launcher = LauncherFactory.create(); SummaryGeneratingListener listener = new SummaryGeneratingListener(); launcher.registerTestExecutionListeners(listener); LauncherDiscoveryRequest request = request()// .configurationParameter("junit.jupiter.execution.parallel.enabled", "true")// .configurationParameter("junit.jupiter.execution.parallel.config.dynamic.factor", "10")// .selectors(selectClass(TestCase.class))// .build(); launcher.execute(request); assertEquals(NUM_TESTS, listener.getSummary().getTestsSucceededCount(), "number of tests executed successfully"); }
@SuppressWarnings("unused") public static void main(String[] args) { // Discover and filter tests LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder .request() .selectors(selectPackage("io.github.bonigarcia"), selectClass(DummyTest.class)) .filters(includeClassNamePatterns(".*Test")).build(); Launcher launcher = LauncherFactory.create(); TestPlan plan = launcher.discover(request); // Executing tests TestExecutionListener listener = new SummaryGeneratingListener(); launcher.registerTestExecutionListeners(listener); launcher.execute(request, listener); }
private static void execute( String testName, TestExecutionListener... testExecutionListeners ) { LauncherDiscoveryRequest discoveryRequest = LauncherDiscoveryRequestBuilder.request() .selectors( selectMethod( DirectoryExtensionLifecycleVerificationTest.class, testName )) .configurationParameter( TEST_TOGGLE, "true" ) .build(); Launcher launcher = LauncherFactory.create(); launcher.execute( discoveryRequest, testExecutionListeners ); }
private SummaryGeneratingListener registerListeners(PrintWriter out, Launcher launcher) { // always register summary generating listener SummaryGeneratingListener summaryListener = new SummaryGeneratingListener(); launcher.registerTestExecutionListeners(summaryListener); // optionally, register test plan execution details printing listener createDetailsPrintingListener(out).ifPresent(launcher::registerTestExecutionListeners); // optionally, register XML reports writing listener createXmlWritingListener(out).ifPresent(launcher::registerTestExecutionListeners); return summaryListener; }
private JUnitPlatformTestTree generateTestTree(LauncherDiscoveryRequest discoveryRequest) { TestPlan testPlan = this.launcher.discover(discoveryRequest); return new JUnitPlatformTestTree(testPlan, this.testClass); }
@SuppressWarnings("unused") public static void main(String[] args) { // Discover and filter tests LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder .request() .selectors(selectPackage("io.github.bonigarcia"), selectClass(DummyTest.class)) .filters(includeClassNamePatterns(".*Test")).build(); Launcher launcher = LauncherFactory.create(); TestPlan plan = launcher.discover(request); // Executing tests TestExecutionListener listener = new SummaryGeneratingListener(); launcher.registerTestExecutionListeners(listener); launcher.execute(request, listener); }
private static void execute( String testName, TestExecutionListener... testExecutionListeners ) { LauncherDiscoveryRequest discoveryRequest = LauncherDiscoveryRequestBuilder.request() .selectors( selectMethod( ProfilerExtensionVerificationTest.class, testName )) .configurationParameter( TEST_TOGGLE, "true" ) .build(); Launcher launcher = LauncherFactory.create(); launcher.execute( discoveryRequest, testExecutionListeners ); } }
public static boolean isJUnit5Test(Class<?> clazz) { try { Class.forName(JupiterTestEngine.class.getCanonicalName()); } catch (ClassNotFoundException e) { throw new AssertionError("Jupiter engine not found"); } LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() .selectors(selectClass(clazz)) .filters(EngineFilter.includeEngines("junit-jupiter")) .build(); try { TestPlan plan = LauncherFactory.create().discover(request); long numberOfTests = plan.countTestIdentifiers(t -> t.isTest()); boolean testsPresent = numberOfTests > 0; return testsPresent; } catch (Throwable e) { // This might fail for any number of reasons... // TODO : use some log instead? e.printStackTrace(); return false; } } }
private void runTestAndAssertCounters(Class<?> testClass) { Launcher launcher = LauncherFactory.create(); ExceptionTrackingListener listener = new ExceptionTrackingListener(); launcher.registerTestExecutionListeners(listener); launcher.execute(request().selectors(selectClass(testClass)).build()); TestExecutionSummary summary = listener.getSummary();
private void invokeAllTests( TestsToRun testsToRun, RunListener runListener ) { LauncherDiscoveryRequest discoveryRequest = buildLauncherDiscoveryRequest( testsToRun ); launcher.execute( discoveryRequest, new RunListenerAdapter( runListener ) ); }
@Override @SuppressWarnings( "rawtypes" ) public boolean accept( Class testClass ) { LauncherDiscoveryRequest discoveryRequest = request() .selectors( selectClass( testClass ) ) .filters( includeAndExcludeFilters ).build(); TestPlan testPlan = launcher.discover( discoveryRequest ); return testPlan.containsTests(); } }
launcher.registerTestExecutionListeners(listener); launcher.execute(request);
@Override public void run(RunNotifier notifier) { this.launcher.execute(this.testTree.getTestPlan(), new JUnitPlatformRunnerListener(this.testTree, notifier)); }
public TestResults runTest(Class<?> clazz) { List<Filter<?>> filters = new ArrayList<>(); filters.add(EngineFilter.includeEngines("junit-jupiter")); if (!configSource.getConfiguration().includedGroups().isEmpty()) { filters.add(TagFilter.includeTags(configSource.getConfiguration().includedGroups().asList())); } if (!configSource.getConfiguration().excludedGroups().isEmpty()) { filters.add(TagFilter.excludeTags(configSource.getConfiguration().excludedGroups().asList())); } LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() .selectors(selectClass(clazz)) .filters(filters.toArray(new Filter[0])) .build(); Launcher launcher = LauncherFactory.create(); // Register a listener of your choice JUnit5EventTranslator listener = new JUnit5EventTranslator(); launcher.registerTestExecutionListeners(listener); launcher.execute(request, new TestExecutionListener[0]); return listener.getTestResults(); }
launcher.execute(request, listener); TestExecutionSummary summary = listener.getSummary(); this.runCnt += summary.getTestsFoundCount();
@Test @DisplayName("⚙️ Check a test failure with an intermediate async result verifier") void checkFailureTestWithIntermediateAsyncVerifier() { LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() .selectors(selectClass(FailureWithIntermediateAsyncVerifierTest.class)) .build(); Launcher launcher = LauncherFactory.create(); SummaryGeneratingListener listener = new SummaryGeneratingListener(); launcher.registerTestExecutionListeners(listener); launcher.execute(request); TestExecutionSummary summary = listener.getSummary(); assertThat(summary.getTestsStartedCount()).isEqualTo(1); assertThat(summary.getTestsFailedCount()).isEqualTo(1); assertThat(summary.getFailures().get(0).getException()).isInstanceOf(AssertionError.class); }
private TestExecutionSummary executeTests(PrintWriter out) { Launcher launcher = launcherSupplier.get(); SummaryGeneratingListener summaryListener = registerListeners(out, launcher); LauncherDiscoveryRequest discoveryRequest = new DiscoveryRequestCreator().toDiscoveryRequest(options); launcher.execute(discoveryRequest); TestExecutionSummary summary = summaryListener.getSummary(); if (summary.getTotalFailureCount() > 0 || options.getDetails() != Details.NONE) { printSummary(summary, out); } return summary; }
@Test @DisplayName("⚙️ Check a test failure") void checkFailureTest() { LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() .selectors(selectClass(FailureTest.class)) .build(); Launcher launcher = LauncherFactory.create(); SummaryGeneratingListener listener = new SummaryGeneratingListener(); launcher.registerTestExecutionListeners(listener); launcher.execute(request); TestExecutionSummary summary = listener.getSummary(); assertThat(summary.getTestsStartedCount()).isEqualTo(1); assertThat(summary.getTestsFailedCount()).isEqualTo(1); assertThat(summary.getFailures().get(0).getException()).isInstanceOf(AssertionError.class); }
@Test @DisplayName("⚙️ Check a failure in the test method body rather than in a callback") void checkDirectFailure() { LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() .selectors(selectClass(DirectFailureTest.class)) .build(); Launcher launcher = LauncherFactory.create(); SummaryGeneratingListener listener = new SummaryGeneratingListener(); launcher.registerTestExecutionListeners(listener); launcher.execute(request); TestExecutionSummary summary = listener.getSummary(); assertThat(summary.getTestsStartedCount()).isEqualTo(1); assertThat(summary.getTestsFailedCount()).isEqualTo(1); assertThat(summary.getFailures().get(0).getException()).isInstanceOf(RuntimeException.class); }