类org.junit.platform.launcher.listeners.TestExecutionSummary源码实例Demo

下面列出了怎么用org.junit.platform.launcher.listeners.TestExecutionSummary的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: btdex   文件: RunSellContractTests.java
public static void main(String[] args) {
    LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
            .selectors(
                    selectPackage("btdex.sellContract.dispute"),
                    selectClass(TestTakeRetake.class),
                    selectClass(TestInvalidTakeTake.class),
                    selectClass(TestInvalidTakeReopenWithdraw.class)
            )
            .build();

    Launcher launcher = LauncherFactory.create();
    // Register a listener
    SummaryGeneratingListener listener = new SummaryGeneratingListener();
    launcher.registerTestExecutionListeners(listener);

    //TestPlan testPlan = launcher.discover(request);

    launcher.execute(request);

    TestExecutionSummary summary = listener.getSummary();
    printReport(summary);


}
 
源代码2 项目: btdex   文件: RunSellContractTests.java
private static void printReport(TestExecutionSummary summary) {
    System.out.println(
            "\n------------------------------------------" +
                    "\nTests started: " + summary.getTestsStartedCount() +
                    "\nTests failed: " + summary.getTestsFailedCount() +
                    "\nTests succeeded: " + summary.getTestsSucceededCount() +
                    "\n------------------------------------------"
    );

    if(summary.getTestsFailedCount() > 0) {
        for(TestExecutionSummary.Failure f: summary.getFailures()){
            System.out.println(f.getTestIdentifier().getSource() +
                                "\nException " + f.getException());
        }
    }
}
 
@Override
public void testPlanExecutionFinished(TestPlan testPlan) {

    TestExecutionSummary summary = getSummary();
    long testRunDuration = System.currentTimeMillis() - summary.getTimeStarted();

    long totalFailureCount = summary.getTotalFailureCount();
    long testsSkippedCount = summary.getTestsSkippedCount();
    long totalTestsFound = summary.getTestsFoundCount();

    Color ignoreColor = testsSkippedCount > 0 ? colorTheme.ignoreCount() : colorTheme.info();
    Color errorColor = totalFailureCount > 0 ? colorTheme.errorCount() : colorTheme.info();

    debugOrInfo(""
            + colorTheme.info().format("Test run finished: ")
            + errorColor.format(totalFailureCount + " failed")
            + colorTheme.info().format(", ")
            + ignoreColor.format(testsSkippedCount + " ignored")
            + colorTheme.info().format(", ")
            + colorTheme.info().format(totalTestsFound + " total, ")
            + colorTheme.info().format(testRunDuration/1000.0 + "s")
    );
}
 
源代码4 项目: vertx-junit5   文件: VertxExtensionTest.java
@Test
@DisplayName("⚙️ Check a timeout diagnosis")
void checkTimeoutFailureTestWithIntermediateAsyncVerifier() {
  LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
    .selectors(selectClass(EmbeddedWithARunner.TimingOut.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);
  Throwable exception = summary.getFailures().get(0).getException();
  assertThat(exception)
    .isInstanceOf(TimeoutException.class)
    .hasMessageContaining("checkpoint in file VertxExtensionTest.java");
}
 
源代码5 项目: vespa   文件: JunitRunner.java
private String createJsonTestReport(TestExecutionSummary report, List<String> logLines) {
    var slime = new Slime();
    var root = slime.setObject();
    var summary = root.setObject("summary");
    summary.setLong("Total tests", report.getTestsFoundCount());
    summary.setLong("Test success", report.getTestsSucceededCount());
    summary.setLong("Test failed", report.getTestsFailedCount());
    summary.setLong("Test ignored", report.getTestsSkippedCount());
    summary.setLong("Test success", report.getTestsAbortedCount());
    summary.setLong("Test started", report.getTestsStartedCount());
    var failures = summary.setArray("failures");
    report.getFailures().forEach(failure -> serializeFailure(failure, failures.addObject()));

    var output = root.setArray("output");
    logLines.forEach(output::addString);

    return Exceptions.uncheck(() -> new String(SlimeUtils.toJsonBytes(slime), StandardCharsets.UTF_8));
}
 
源代码6 项目: jeka   文件: JunitPlatformDoer.java
private static JkTestResult toTestResult(TestExecutionSummary summary) {
    JkTestResult.JkCount containerCount = JkTestResult.JkCount.of(
            summary.getContainersFoundCount(),
            summary.getContainersStartedCount(),
            summary.getContainersSkippedCount(),
            summary.getContainersAbortedCount(),
            summary.getContainersSucceededCount(),
            summary.getContainersFailedCount());
    JkTestResult.JkCount testCount = JkTestResult.JkCount.of(
            summary.getTestsFoundCount(),
            summary.getTestsStartedCount(),
            summary.getTestsSkippedCount(),
            summary.getTestsAbortedCount(),
            summary.getTestsSucceededCount(),
            summary.getTestsFailedCount());
    List<JkTestResult.JkFailure> failures = summary.getFailures().stream()
            .map(JunitPlatformDoer::toFailure).collect(Collectors.toList());
    return JkTestResult.of(summary.getTimeStarted(), summary.getTimeFinished(),
            containerCount, testCount, failures);
}
 
源代码7 项目: jeka   文件: JunitPlatformDoer.java
private static JkTestResult.JkFailure toFailure(TestExecutionSummary.Failure failure) {
    JkTestResult.JkTestIdentifier.JkType type;
    switch (failure.getTestIdentifier().getType()) {
        case CONTAINER:
            type = JkTestResult.JkTestIdentifier.JkType.CONTAINER;
            break;
        case CONTAINER_AND_TEST:
            type = JkTestResult.JkTestIdentifier.JkType.CONTAINER_AND_TEST;
            break;
        default:
            type = JkTestResult.JkTestIdentifier.JkType.TEST;
            break;
    }
    String testId = failure.getTestIdentifier().getUniqueId();
    String displayName = failure.getTestIdentifier().getDisplayName();
    Set<String> tags = failure.getTestIdentifier().getTags().stream().map(TestTag::toString)
            .collect(Collectors.toSet());
    JkTestResult.JkTestIdentifier id = JkTestResult.JkTestIdentifier.of(type, testId, displayName, tags);
    return JkTestResult.JkFailure.of(id, failure.getException().getMessage(),
            failure.getException().getStackTrace());
}
 
源代码8 项目: quickperf   文件: JUnit5TestRunner.java
private static TestExecutionSummary runTestMethod(Class<?> testClass, String methodName) {
    MethodSelector testMethodSelector = selectMethod(testClass, methodName);
    LauncherDiscoveryRequest request = request().selectors(testMethodSelector)
                                      .build();

    SummaryGeneratingListener listener = new SummaryGeneratingListener();

    Launcher launcher = LauncherFactory.create();
    launcher.execute(request, listener);

    return listener.getSummary();
}
 
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();

	String name = testClass.getSimpleName();
	int expectedStartedCount = getExpectedStartedCount(testClass);
	int expectedSucceededCount = getExpectedSucceededCount(testClass);
	int expectedFailedCount = getExpectedFailedCount(testClass);

	// @formatter:off
	assertAll(
		() -> assertEquals(1, summary.getTestsFoundCount(), () -> name + ": tests found"),
		() -> assertEquals(0, summary.getTestsSkippedCount(), () -> name + ": tests skipped"),
		() -> assertEquals(0, summary.getTestsAbortedCount(), () -> name + ": tests aborted"),
		() -> assertEquals(expectedStartedCount, summary.getTestsStartedCount(), () -> name + ": tests started"),
		() -> assertEquals(expectedSucceededCount, summary.getTestsSucceededCount(), () -> name + ": tests succeeded"),
		() -> assertEquals(expectedFailedCount, summary.getTestsFailedCount(), () -> name + ": tests failed")
	);
	// @formatter:on

	// Ensure it was an AssertionFailedError that failed the test and not
	// something else like an error in the @Configuration class, etc.
	if (expectedFailedCount > 0) {
		assertEquals(1, listener.exceptions.size(), "exceptions expected");
		Throwable exception = listener.exceptions.get(0);
		if (!(exception instanceof AssertionFailedError)) {
			throw new AssertionFailedError(
				exception.getClass().getName() + " is not an instance of " + AssertionFailedError.class.getName(),
				exception);
		}
	}
}
 
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();

	String name = testClass.getSimpleName();
	int expectedStartedCount = getExpectedStartedCount(testClass);
	int expectedSucceededCount = getExpectedSucceededCount(testClass);
	int expectedFailedCount = getExpectedFailedCount(testClass);

	// @formatter:off
	assertAll(
		() -> assertEquals(1, summary.getTestsFoundCount(), () -> name + ": tests found"),
		() -> assertEquals(0, summary.getTestsSkippedCount(), () -> name + ": tests skipped"),
		() -> assertEquals(0, summary.getTestsAbortedCount(), () -> name + ": tests aborted"),
		() -> assertEquals(expectedStartedCount, summary.getTestsStartedCount(), () -> name + ": tests started"),
		() -> assertEquals(expectedSucceededCount, summary.getTestsSucceededCount(), () -> name + ": tests succeeded"),
		() -> assertEquals(expectedFailedCount, summary.getTestsFailedCount(), () -> name + ": tests failed")
	);
	// @formatter:on

	// Ensure it was an AssertionFailedError that failed the test and not
	// something else like an error in the @Configuration class, etc.
	if (expectedFailedCount > 0) {
		assertEquals(1, listener.exceptions.size(), "exceptions expected");
		Throwable exception = listener.exceptions.get(0);
		if (!(exception instanceof AssertionFailedError)) {
			throw new AssertionFailedError(
				exception.getClass().getName() + " is not an instance of " + AssertionFailedError.class.getName(),
				exception);
		}
	}
}
 
源代码11 项目: vertx-junit5   文件: VertxExtensionTest.java
@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);
}
 
源代码12 项目: vertx-junit5   文件: VertxExtensionTest.java
@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);
}
 
源代码13 项目: vertx-junit5   文件: VertxExtensionTest.java
@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);
}
 
源代码14 项目: zerocode   文件: JupiterLoadProcessor.java
public void updatePassFailCount(SummaryGeneratingListener summaryListener) {
    TestExecutionSummary summary = summaryListener.getSummary();
    if (summary.getTotalFailureCount() > 0) {
        getFailedCounter().incrementAndGet();
        summary.getFailures().forEach(thisFailure -> {
            TestIdentifier testIdentifier = thisFailure.getTestIdentifier();
            String exceptionMessage = thisFailure.getException().getMessage();
            LOGGER.info("\n----------------------------------------------------------------------\n");
            LOGGER.info("\n###JUnit5: Test Failed Due To --> {}, \ntestIdentifier={}", exceptionMessage, testIdentifier);
            LOGGER.info("\n----------------------------------------------------------------------\n");
        });
    } else {
        getPassedCounter().incrementAndGet();
    }
}
 
源代码15 项目: tutorials   文件: RunJUnit5TestsFromJava.java
public static void main(String[] args) {
    RunJUnit5TestsFromJava runner = new RunJUnit5TestsFromJava();
    runner.runAll();

    TestExecutionSummary summary = runner.listener.getSummary();
    summary.printTo(new PrintWriter(System.out));

    runner.runOne();

    summary = runner.listener.getSummary();
    summary.printTo(new PrintWriter(System.out));
}
 
源代码16 项目: quickperf   文件: JUnit5Tests.java
public JUnit5TestsResult run()  {
    launcher.execute(request);
    TestExecutionSummary testExecutionSummary = listener.getSummary();
    return new JUnit5TestsResult(testExecutionSummary);
}
 
源代码17 项目: quickperf   文件: JUnit5Tests.java
public JUnit5TestsResult(TestExecutionSummary testExecutionSummary) {
    this.testExecutionSummary = testExecutionSummary;
}
 
源代码18 项目: quickperf   文件: JUnit5Tests.java
public int getNumberOfFailures() {
    List<TestExecutionSummary.Failure> failures = testExecutionSummary.getFailures();
    return failures.size();
}
 
源代码19 项目: quickperf   文件: JUnit5TestRunner.java
private List<Throwable> convertToThrowables(List<TestExecutionSummary.Failure> failures) {
    return failures.stream()
                   .map(TestExecutionSummary.Failure::getException)
                   .collect(toList());
}
 
源代码20 项目: meghanada-server   文件: TestRunner.java
private void runJUnit(String arg, LauncherDiscoveryRequest request) {
  Stopwatch stopwatch = Stopwatch.createStarted();
  System.out.println(String.format("Running %s", arg));
  System.out.println();

  Launcher launcher = LauncherFactory.create();
  SummaryGeneratingListener listener = new SummaryGeneratingListener();
  launcher.execute(request, listener);
  TestExecutionSummary summary = listener.getSummary();
  this.runCnt += summary.getTestsFoundCount();
  this.failureCnt += summary.getTestsFailedCount();
  this.ignoreCnt += summary.getTestsSkippedCount();
  this.ignoreCnt += summary.getTestsSkippedCount();

  System.out.println();

  if (summary.getTestsFailedCount() > 0) {
    System.out.println(
        String.format(
            "FAIL Tests run: %d, Failures: %d, Ignore: %d, Time elapsed: %s",
            summary.getTestsFoundCount(),
            summary.getTestsFailedCount(),
            summary.getTestsSkippedCount(),
            stopwatch.stop()));
    System.out.println("Failures:");
    for (TestExecutionSummary.Failure failure : summary.getFailures()) {
      System.out.println(failure.getTestIdentifier().getDisplayName());
      failure.getException().printStackTrace();
      System.out.println();
    }
  } else {
    System.out.println(
        String.format(
            "Tests run: %d, Failures: %d, Ignore: %d, Time elapsed: %s",
            summary.getTestsFoundCount(),
            summary.getTestsFailedCount(),
            summary.getTestsSkippedCount(),
            stopwatch.stop()));
    System.out.println("Success");
  }

  System.out.println(Strings.repeat("-", 80));
}
 
源代码21 项目: vespa   文件: JunitRunner.java
private void serializeFailure(TestExecutionSummary.Failure failure, Cursor slime) {
    var testIdentifier = failure.getTestIdentifier();
    slime.setString("testName", testIdentifier.getUniqueId());
    slime.setString("testError",failure.getException().getMessage());
    slime.setString("exception", ExceptionUtils.getStackTraceAsString(failure.getException()));
}
 
源代码22 项目: quickperf   文件: JUnit5TestRunner.java
@Override
public TestIssue executeTestMethod(Class<?> testClass, String methodName) {
    TestExecutionSummary testResult = runTestMethod(testClass, methodName);

    List<TestExecutionSummary.Failure> failures = testResult.getFailures();

    List<Throwable> jUnit5failuresAsThrowables = convertToThrowables(failures);

    return TestIssue.buildInNewJvmFrom(jUnit5failuresAsThrowables);
}
 
 类所在包
 类方法
 同包方法