private void generateReportsFor(final AcceptanceTestReporter reporter, final TestOutcomes testOutcomes) { LOGGER.debug("Generating reports for " + testOutcomes.getTotalTestScenarios() + " test outcomes using: " + reporter); long t0 = System.currentTimeMillis(); List<? extends TestOutcome> outcomes = testOutcomes.getOutcomes(); ExecutorService executorService = Executors.newFixedThreadPool(maximumPoolSize); try { final ArrayList<Future> tasks = new ArrayList<>(outcomes.size()); for (final TestOutcome outcome : outcomes) { tasks.add(executorService.submit(() -> { LOGGER.debug("Processing test outcome " + outcome.getCompleteName()); generateReportFor(outcome, reporter); LOGGER.debug("Processing test outcome " + outcome.getCompleteName() + " done"); })); } generateJUnitTestResults(testOutcomes); waitForReportGenerationToFinish(tasks); } finally { LOGGER.debug("Shutting down executor service"); executorService.shutdown(); } LOGGER.debug("Reports generated in: " + (System.currentTimeMillis() - t0) + " ms"); }
generateJUnitTestResults(testOutcomes); waitForReportGenerationToFinish(remainingReportCount); LOGGER.info("Reports generated in: " + (System.currentTimeMillis() - t0));