es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Extensión Junit 5: cómo acceder a testDescriptor

Estoy escribiendo una extensión para una prueba usando @ParameterizedTest. Mi prueba se ve así:

@ParameterizedTest
@ValueSource(strings={"string1", "string2"})
public void test1(String name){
    System.out.println(name);
}

En las extensiones, ¿cómo puedo obtener el TestDescriptor para saber qué invocación está actualmente activa?

public class MyExtension implements BeforeEachCallBack{

 @Override
 public void beforeEach(ExtensionContext extensionContext)   
     // ¿Qué debo hacer aquí? extensionContext.?
 }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener el TestDescriptor y averiguar qué invocación está actualmente activa, puedes usar el ExtensionContext proporcionado por el método beforeEach. Aquí tienes un ejemplo de código:

    public class MyExtension implements BeforeEachCallback {
    
        @Override
        public void beforeEach(ExtensionContext extensionContext) {
            int invocationIndex = extensionContext.getDisplayName().lastIndexOf('[');
            if (invocationIndex != -1) {
                String invocation = extensionContext.getDisplayName().substring(invocationIndex + 1, extensionContext.getDisplayName().length() - 1);
                System.out.println("Invocación actual en ejecución: " + invocation);
            }
        }
    }
    

    En el método beforeEach, obtenemos el DisplayName de la invocación de prueba actual desde el ExtensionContext. Luego, analizamos el nombre para extraer el número de invocación y lo imprimimos. De esta manera, puedes determinar qué invocación está actualmente activa en tu @ParameterizedTest.

Comments are closed.