Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
JUnit5 - Cómo obtener el resultado de la prueba en AfterTestExecutionCallback

Escribo la extensión JUnit5. Pero no puedo encontrar la manera de obtener el resultado de la prueba.

La extensión se ve así:

 import org.junit.jupiter.api.extension.AfterTestExecutionCallback; import org.junit.jupiter.api.extension.TestExtensionContext; public class TestResultExtension implements AfterTestExecutionCallback { @Override public void afterTestExecution(TestExtensionContext context) throws Exception { //How to get test result? SUCCESS/FAILED } }

¿Alguna pista sobre cómo obtener el resultado de la prueba?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Como señalan otras respuestas, JUnit comunica las pruebas fallidas con excepciones , por lo que se puede usar AfterTestExecutionCallback para aclarar lo que sucedió . Tenga en cuenta que esto es propenso a errores, ya que la extensión que se ejecute más tarde aún podría fallar en la prueba.

Otra forma de hacerlo es registrar un TestExecutionListener personalizado . Sin embargo, ambos enfoques son un poco indirectos. Hay un problema que rastrea un punto de extensión específico para reaccionar a los resultados de la prueba , lo que probablemente sería la respuesta más directa a su pregunta. Si puede proporcionar un caso de uso específico, sería genial si pudiera dirigirse al n. ° 542 y dejar un comentario que lo describa.

about 4 years ago · Santiago Trujillo Report

0

Este trabajo para mí:

 public class RunnerExtension implements AfterTestExecutionCallback { @Override public void afterTestExecution(ExtensionContext context) throws Exception { Boolean testResult = context.getExecutionException().isPresent(); System.out.println(testResult); //false - SUCCESS, true - FAILED } } @ExtendWith(RunnerExtension.class) public abstract class Tests { }
about 4 years ago · Santiago Trujillo Report

0

Puede usar SummaryGeneratingListener desde org.junit.platform.launcher.listeners

Contiene el campo MutableTestExecutionSummary , que implementa la interfaz TestExecutionSummary , y de esta manera puede obtener información sobre contenedores, pruebas, tiempo, fallas, etc.

Puede crear un oyente personalizado, por ejemplo:

  1. Crear clase que amplíe SummaryGeneratingListener
 public class ResultAnalyzer extends SummaryGeneratingListener { @Override public void testPlanExecutionFinished(TestPlan testPlan) { //This method is invoked after all tests in all containers is finished super.testPlanExecutionFinished(testPlan); analyzeResult(); } private void analyzeResult() { var summary = getSummary(); var failures = summary.getFailures(); //Do something } }
  1. Registre el oyente creando un archivo

src\main\resources\META-INF\services\org.junit.platform.launcher.TestExecutionListener

y especifique su implementación en él

ruta.a.clase.ResultAnalyzer

  1. Habilitar la detección automática de extensiones, establecer parámetro

-Djunit.jupiter.extensiones.autodetección.habilitado=verdadero

¡Y eso es!

Documentos

https://junit.org/junit5/docs/5.0.0/api/org/junit/platform/launcher/listeners/SummaryGeneratingListener.html

https://junit.org/junit5/docs/5.0.0/api/org/junit/platform/launcher/listeners/TestExecutionSummary.html

https://junit.org/junit5/docs/current/user-guide/#extensions-registration-automatic

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!