@Override public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) { super.executionFinished(testIdentifier, testExecutionResult); testExecutionResult.getThrowable().ifPresent(exceptions::add); } }
@Override public void executionFinished( TestIdentifier testIdentifier, TestExecutionResult testExecutionResult ) { if ( testExecutionResult.getStatus() == FAILED ) { resultsObserved++; String exceptionMessage = testExecutionResult.getThrowable().map( Throwable::getMessage ).orElse( EMPTY ); assertThat( exceptionMessage, containsString( "Fail to cleanup test directory for lockFileAndFailToDeleteDirectory" ) ); } }
/** * Invoke {@link TestWatcher#testSuccessful testSuccessful()}, * {@link TestWatcher#testAborted testAborted()}, or * {@link TestWatcher#testFailed testFailed()} on each * registered {@link TestWatcher} according to the status of the supplied * {@link TestExecutionResult}, in reverse registration order. * * @since 5.4 */ @Override public void nodeFinished(JupiterEngineExecutionContext context, TestDescriptor descriptor, TestExecutionResult result) { if (context != null) { ExtensionContext extensionContext = context.getExtensionContext(); TestExecutionResult.Status status = result.getStatus(); invokeTestWatchers(context, true, watcher -> { switch (status) { case SUCCESSFUL: watcher.testSuccessful(extensionContext); break; case ABORTED: watcher.testAborted(extensionContext, result.getThrowable().orElse(null)); break; case FAILED: watcher.testFailed(extensionContext, result.getThrowable().orElse(null)); break; } }); } }
private static boolean isFailure(TestExecutionResult result) { Optional<Throwable> throwable = result.getThrowable(); return throwable.isPresent() && throwable.get() instanceof AssertionError; }
private void printThrowable(String indent, TestExecutionResult result) { if (!result.getThrowable().isPresent()) { return; } Throwable throwable = result.getThrowable().get(); String message = throwable.getMessage(); if (StringUtils.isBlank(message)) { message = throwable.toString(); } printMessage(FAILED, indent, message); }
private Failure toFailure(TestExecutionResult testExecutionResult, Description description) { return new Failure(description, testExecutionResult.getThrowable().orElse(null)); }
void markFinished(TestIdentifier testIdentifier, TestExecutionResult result) { this.endInstants.put(testIdentifier, this.clock.instant()); if (result.getStatus() == ABORTED) { String reason = result.getThrowable().map(ExceptionUtils::readStackTrace).orElse(""); this.skippedTests.put(testIdentifier, reason); } else { this.finishedTests.put(testIdentifier, result); } }
private void writeErrorOrFailureElement(TestExecutionResult result, XMLStreamWriter writer) throws XMLStreamException { Optional<Throwable> throwable = result.getThrowable(); if (throwable.isPresent()) { writer.writeStartElement(isFailure(result) ? "failure" : "error"); writeFailureAttributesAndContent(throwable.get(), writer); writer.writeEndElement(); } else { writer.writeEmptyElement("error"); } newLine(writer); }
private StackTraceWriter toStackTraceWriter( String realClassName, String realMethodName, TestExecutionResult testExecutionResult ) { switch ( testExecutionResult.getStatus() ) { case ABORTED: case FAILED: // Failed tests must have a StackTraceWriter, otherwise Surefire will fail Throwable exception = testExecutionResult.getThrowable().orElse( null ); return toStackTraceWriter( realClassName, realMethodName, exception ); default: return testExecutionResult.getThrowable() .map( t -> toStackTraceWriter( realClassName, realMethodName, t ) ) .orElse( null ); } }
private TestEvent createEventFrom(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) { String testCaseName = getTestCaseName(testIdentifier); Throwable exception = testExecutionResult.getThrowable().get(); return methodFailed(testCaseName, getMethodName(testIdentifier), exception); }
@Override public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) { Color color = Color.valueOf(testExecutionResult); printlnTestDescriptor(color, "Finished:", testIdentifier); testExecutionResult.getThrowable().ifPresent(t -> printlnException(color, t)); }
@Override public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) { if (testIdentifier.isTest()) { switch (testExecutionResult.getStatus()) { case FAILED: this.getFailingTests().add( new Failure( this.toString.apply(testIdentifier), this.toClassName.apply(testIdentifier), testExecutionResult.getThrowable().get() ) ); break; default: break; } } }
@Override public boolean matches(TestExecutionResult result) { if (result.getStatus() != TestExecutionResult.Status.FAILED) return false; if (message == null) return true; return result.getThrowable().get().getMessage().equals(message); } }
@Override public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) { testExecutionResult.getThrowable().ifPresent(t -> printDetail(Color.FAILED, "caught", readStackTrace(t))); if (testIdentifier.isContainer()) { Long creationMillis = frames.pop(); printVerticals(theme.end()); printf(Color.CONTAINER, " %s", testIdentifier.getDisplayName()); printf(NONE, " finished after %d ms.%n", System.currentTimeMillis() - creationMillis); return; } printDetail(NONE, "duration", "%d ms%n", System.currentTimeMillis() - executionStartedMillis); String status = theme.status(testExecutionResult) + " " + testExecutionResult.getStatus(); printDetail(Color.valueOf(testExecutionResult), "status", "%s%n", status); }
@Override public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) { if (testIdentifier.isTest()) { this.internalCoverage.getData().collect( this.internalCoverage.getExecutionData(), this.internalCoverage.getSessionInfos(), false ); final JUnit5Coverage jUnit5Coverage = new JUnit5Coverage(); jUnit5Coverage.collectData(this.internalCoverage.getExecutionData(), this.internalCoverage.getClassesDirectory()); this.internalCoverage.getCoverageResultsMap().put(this.toString.apply(testIdentifier), jUnit5Coverage); switch (testExecutionResult.getStatus()) { case FAILED: this.getFailingTests().add( new Failure( this.toString.apply(testIdentifier), this.toClassName.apply(testIdentifier), testExecutionResult.getThrowable().get() ) ); break; default: break; } } }
private void assertSingleFailedTest(ExecutionEventRecorder executionEventRecorder, Class<? extends Throwable> clazz, String message) { assertEquals(1, executionEventRecorder.getTestStartedCount()); assertEquals(1, executionEventRecorder.getTestFailedCount()); assertEquals(0, executionEventRecorder.getTestSuccessfulCount()); ExecutionEvent executionEvent = executionEventRecorder.getFailedTestFinishedEvents().get(0); Optional<TestExecutionResult> result = executionEvent.getPayload(TestExecutionResult.class); assertThat(result).isPresent(); assertThat(result.get().getStatus()).isEqualTo(FAILED); Optional<Throwable> throwable = result.get().getThrowable(); assertThat(throwable).containsInstanceOf(clazz); assertThat(throwable.get()).hasMessageContaining(message); } }
systemProps(), elapsed ) ); else if ( testExecutionResult.getThrowable() .filter( AssertionError.class::isInstance ).isPresent() )