Cuando trabajamos con JUnit 5 en NetBeans, nos encontramos con ciertas particularidades que conviene tener claras para evitar frustraciones. En la versión 16 de NetBeans, por ejemplo, el soporte para JUnit 5 no es tan sólido como podríamos esperar, especialmente si usamos Ant como sistema de construcción. Ant ha sido durante mucho tiempo el runner tradicional en NetBeans, y aunque sigue siendo una opción disponible, presenta limitaciones importantes para ejecutar tests con JUnit 5.
Si creamos un proyecto Java con Ant y tratamos de añadir un test de JUnit 5, veremos que aunque el IDE importe correctamente las clases de JUnit 5, al intentar ejecutar los tests estos fallan y no se ejecutan. Esto se debe a que Ant no es del todo compatible con JUnit 5 en este momento, y parece que no hay una solución a corto plazo debido a la falta de acuerdo entre los equipos responsables de JUnit y Ant.
Por eso, la recomendación más práctica es optar por Maven o Gradle para gestionar nuestros proyectos en NetBeans cuando queremos trabajar con JUnit 5. Al crear un proyecto Maven, por ejemplo, sí podemos añadir tests y ejecutarlos sin problemas, siempre que configuremos correctamente las dependencias en el archivo pom.xml. Es fundamental incluir las dependencias de JUnit 5 que vayamos a utilizar, como junit-jupiter-api, junit-jupiter-params para tests parametrizados, y junit-jupiter-engine para la ejecución de los tests.
Además, es importante asegurarnos de incluir el plugin Surefire en el pom.xml. Sin este plugin, al intentar ejecutar los tests, nos encontraremos con errores que indican que falta Surefire, y NetBeans no podrá lanzar correctamente las pruebas. El plugin Surefire es el encargado de ejecutar los tests durante el ciclo de construcción de Maven, por lo que su presencia es imprescindible.
Un ejemplo básico de configuración en el pom.xml para JUnit 5 con Surefire podría ser:
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.9.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.9.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
</plugin>
</plugins>
</build>
Por otro lado, si preferimos usar Gradle, también es posible trabajar con JUnit 5 sin mayores complicaciones, siempre que el proyecto se cree con soporte para JUnit 5 activado. Esto suele ser así en las versiones recientes de Gradle, que incluyen soporte nativo para JUnit 5. Sin embargo, es recomendable revisar el archivo build.gradle para asegurarnos de que la tarea de test está configurada para usar la plataforma JUnit.
Un fragmento típico en build.gradle para habilitar JUnit 5 sería:
test {
useJUnitPlatform()
}
Con esta configuración, al ejecutar la tarea test, Gradle reconocerá y ejecutará correctamente los tests escritos con JUnit 5.
En definitiva, aunque NetBeans sigue permitiendo trabajar con Ant, si queremos aprovechar JUnit 5 de forma efectiva, debemos migrar a Maven o Gradle y asegurarnos de que las dependencias y plugins necesarios están bien configurados. Esto nos evitará errores y nos permitirá ejecutar nuestros tests sin problemas dentro del entorno de NetBeans.