Maven – Pruebas Unitarias

Maven nos da la posibilidad de automatizar la ejecución de pruebas unitarias en los builds que realicemos.

Configuración del proyecto

Maven pruebas unitarias - Estructura proyecto

Utilizaremos el framework JUnit para pruebas unitarias por lo que necesitamos agregar la dependencia en el archivo pom.xml:

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.13.2</version>
	<scope>test</scope>
</dependency>

Necesitaremos, además, configurar en el archivo pom.xml el plugin Surefire utilizado por Maven para la ejecución de tests con JUnit.

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<version>3.0.0-M6</version>
	<configuration>
		<skipTests>false</skipTests>
	</configuration>
</plugin>

Clases de test

Las clases de test se ubican dentro de la carpeta src/test y a los fines de los ejemplos los casos de prueba se reparten en dos clases diferentes.

package com.jcodepoint;

import static org.junit.Assert.assertEquals;
import org.junit.Test;

public class SolarSystemInfoTest {

	@Test
    public void testMercurySatelliteCount() {
    	assertEquals(0, SolarSystemInfo.getMercurySatelliteCount());
    }

	@Test
    public void testEarthSatelliteCount() {
    	assertEquals(1, SolarSystemInfo.getEarthSatelliteCount());
    }

}
package com.jcodepoint;

import static org.junit.Assert.assertTrue;
import org.junit.Test;

public class PlanetsInfoTest {

	@Test
    public void testPlanets() {
    	assertTrue(SolarSystemInfo.getPlanets().contains("Earth"));
    }
	
}

Ejecución de las pruebas unitarias con Maven

En JUnit, los métodos que implementan los casos de prueba deben estar anotados con @test. De este modo, al ejecutar el siguiente comando:

$ mvn test

se ejecutará la totalidad de los casos de prueba del proyecto.

Maven pruebas unitarias - run tests 1

Es posible filtrar los casos de prueba a ejecutar indicando la clase con los métodos a invocar:

$ mvn test -Dtest=com.jcodepoint.SolarSystemInfoTest
Maven pruebas unitarias - run tests 2

De forma similar, podemos ajustar el filtro indicando clase y método del caso de prueba a ejecutar:

$ mvn test -Dtest=com.jcodepoint.SolarSystemInfoTest#testMercurySatelliteCount
Maven pruebas unitarias - run tests 3

Conclusión

Maven brinda una forma eficiente de ejecutar pruebas unitarias y generar informes de prueba. Al configurar el plugin Surefire, los desarrolladores pueden ejecutar fácilmente sus pruebas unitarias y ver los resultados en una variedad de formatos. Además, se puede lograr un control detallado sobre la ejecución de las pruebas a través de la configuración del plugin, lo que permite a los desarrolladores definir qué pruebas ejecutar, omitir o incluir grupos, y más. Al integrar estas herramientas en su flujo de trabajo, los desarrolladores pueden identificar y abordar rápidamente problemas en su código, lo que da como resultado aplicaciones más sólidas y fáciles de mantener.


Te puede interesar

Maven – Crear un proyecto Java

En este artículo se explica el proceso completo para crear de un proyecto Java utilizando arquetipos de Maven.

Seguir leyendo →

Cómo instalar Maven en Ubuntu

En este artículo se explica cómo instalar Apache Maven en Ubuntu utilizando apt (Advanced Package Tool) y configurar las variables de entorno.

Seguir leyendo →