A logo showing the text blog.marcnuri.com
English
Inicio»Java»JUnit 5 - Cómo ejecutar tests unitarios en Maven

Entradas Recientes

  • MCP Tool Annotations: Añadiendo Metadatos y Contexto a Tus Herramientas de IA
  • Fabric8 Kubernetes Client 7.2.0 está disponible!
  • Conectarse a un servidor MCP con JavaScript y AI SDK
  • Conectarse a un servidor MCP con JavaScript y LangChain.js
  • El Futuro de las Herramientas para Desarrolladores en la era de la IA

Categorías

  • Antiguo
  • Front-end
  • Go
  • Herramientas
  • Industria y negocios
  • Inteligencia Artificial
  • Java
  • JavaScript
  • Operaciones
  • Personal
  • Proyectos personales

Archivos

  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • agosto 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • junio 2020
  • mayo 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • enero 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • diciembre 2014
  • marzo 2014
  • febrero 2011
  • junio 2008
  • mayo 2008
  • abril 2008
  • enero 2008
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007

JUnit 5 - Cómo ejecutar tests unitarios en Maven

2023-08-29 en Java etiquetado Java / Testing / JUnit / JUnit 5 / Maven / Test-Driven Development (TDD) por Marc Nuri | Última actualización: 2023-08-29
English version

Introducción

En este artículo, te mostraré cómo puedes configurar tu proyecto Apache Maven para ejecutar tests JUnit 5 (o JUnit 4) usando el Maven Surefire plugin.

Apache Maven es una herramienta de automatización de construcción diseñada especialmente para proyectos Java (aunque también puedes utilizarla para otros lenguajes).

Si miramos la página principal de Maven, descubriremos que Maven se basa en plugins para realizar la mayoría de sus tareas. Esto se resume en la siguiente cita:

Maven is -at its heart- a plugin execution framework; all work is done by plugins.

(Maven es -en esencia- un framework de ejecución de plugins; todo el trabajo lo realizan los plugins.)

El plugin de Maven encargado de ejecutar los tests unitarios es el Maven Surefire plugin. Veamos cómo funciona.

Configurando Maven Surefire Plugin

Maven utiliza el Maven Surefire Plugin por defecto cada vez que ejecutamos el goal mvn test. Esto significa que ni siquiera necesitamos configurar el plugin para que Maven lo utilice.

Por ejemplo, si consideramos un proyecto base con el siguiente contenido en el fichero pom.xml:

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.marcnuri.demo</groupId>
  <artifactId>junit5-surefire</artifactId>
  <version>0.0-SNAPSHOT</version>
  <properties>
    <java.source.version>17</java.source.version>
    <java.target.version>17</java.target.version>
  </properties>
</project>

Al ejecutar el siguiente comando:

bash
mvn test

Deberíamos de ver un mensaje como el siguiente:

[INFO] --- surefire:3.0.0:test (default-test) @ junit5-surefire ---
[INFO] No tests to run.

Como no tenemos tests en el proyecto, obtenemos el mensaje No tests to run.

Si nos fijamos en los logs, podemos ver que Maven está ejecutando la versión 3.0.0 del plugin Surefire. Esto es porque estoy ejecutando Maven 3.9.2 que utiliza esta versión del plugin Surefire.

En el futuro, es posible que queramos establecer una versión explícita del plugin o proporcionar más configuraciones. Para ello, necesitamos declarar una dependencia del plugin en la sección build del fichero pom.xml:

pom.xml
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>3.1.2</version>
    </plugin>
  </plugins>
</build>

Si ejecutamos de nuevo el comando mvn test, veremos que el plugin Surefire ha cambiado a la versión 3.1.2:

[INFO] --- surefire:3.1.2:test (default-test) @ junit5-surefire ---
[INFO] No tests to run.

No obstante, todavía no tenemos ningún test que ejecutar. Veamos ahora cómo añadir un test JUnit 5 al proyecto.

Creando tests con JUnit 5

Comencemos por añadir la dependencia de JUnit 5 al fichero pom.xml de nuestro proyecto:

pom.xml
<dependencies>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.10.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

A continuación, creemos un test de ejemplo en el directorio src/test/java con el nombre ExampleTest.java:

ExampleTest.java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;

class ExampleTest {
  @Test
  void test() {
    assertTrue(true);
  }
}

Este es un test muy sencillo que siempre pasará. Lo único que estamos comprobando es que true es true.

Nota

El nombre de la clase es importante para que el plugin Maven Surefire pueda incluir el test en la ejecución.

En este caso, hemos nombrado la clase ExampleTest con el sufijo Test. Puedes configurar estos sufijos en la configuración del plugin Maven.

Ejecutemos una vez más el comando mvn test:

[INFO] --- surefire:3.1.2:test (default-test) @ junit5-surefire ---
[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running ExampleTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.032 s -- in ExampleTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

El plugin detecta correctamente el test que acabamos de implementar y lo ejecuta por nosotros. El plugin Surefire también muestra un informe muy sencillo con el nombre de la clase de test y los resultados del su ejecución.

Conclusión

En este artículo, te he mostrado cómo puedes configurar tu proyecto Maven para ejecutar tests unitarios JUnit 5 (o JUnit 4) usando el plugin Maven Surefire. Esta configuración es la más básica que te permitirá añadir complejidad en el futuro.

Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos
Eclipse JKube 1.14 está disponible!JUnit 5 - Como deshabilitar o ignorar tests
© 2007 - 2025 Marc Nuri