Plugin Maven Surefire + pruebas dinámicas JUnit5 – ¿cómo anular el nombre de las pruebas?
Supongamos que tenemos un test dinámico JUnit5 como este:
public class ProbaTest {
@TestFactory
public Iterable<dynamicnode> tests() {
return Collections.singleton(
DynamicTest.dynamicTest("aaa", () -> {
throw new AssertionError("FAIL, as planned");
})
);
}
}
Cuando se ejecuta con el plugin Surefire Maven, falla de la siguiente manera:
[INFO] --- maven-surefire-plugin: 2.22.2: test (prueba predeterminada) @ proba-retrolambda ---
[INFO]
[INFO] -------------------------------------------------- -----
[INFO] PRUEBAS
[INFO] -------------------------------------------------- -----
[INFO] Ejecutando com.proba.ProbaTest
[ERROR] Ejecución de pruebas: 1, fallos: 1, errores: 0, omitidos: 0, tiempo transcurrido: 0.025 s <<< ¡FALLA! - en com.proba.ProbaTest
[ERROR] tests [1] Tiempo transcurrido: 0.007 s <<< ¡FALLA!
java.lang.AssertionError: FAIL, as planned
en com.proba.ProbaTest.lambda $tests $ 0 (ProbaTest.java: 14) & nbsp; & nbsp; & nbsp;
[INFO]
[INFO] Resultados:
[INFO]
[ERROR] Fallos:
[ERROR] ProbaTest.lambda $tests $ 0:14 FAIL, as planned
[INFO]
[ERROR] Ejecutando pruebas: 1, fallos: 1, errores: 0, omitidos: 0
Algo notable sobre la salida es el nombre dinámico, dado por JUnit5 – “tests [1]”. No utiliza el nombre de visualización “aaa” dado por el factory del test, y por lo que vi, hay razones para esto.
Sin embargo, me pregunto si hay alguna forma de anular explícitamente el comportamiento de nomenclatura. ¿Hay alguna forma de proporcionar nombres explícitos para casos de prueba dinámicos de JUnit?
davy.ai
Sí, hay una manera de proporcionar nombres explícitos para los casos de prueba dinámicos de JUnit. Puedes usar el método
displayName
deDynamicTest
. Aquí tienes un ejemplo:En este ejemplo, hemos agregado el método
displayName
a la instanciaDynamicTest
y hemos proporcionado el nombre deseado como argumento. Ahora, cuando se ejecute este caso de prueba, el nombre del display será “Mi caso de prueba” en lugar del nombre dinámico predeterminado.Esto puede ser útil cuando quieres proporcionar nombres más descriptivos y legibles para tus casos de prueba dinámicos.