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

Agregar dependencias en Apache Maven

En este artículo veremos cómo agregar dependencias en Apache Maven en unos pocos pasos, buscando en el Repositorio Central de Maven.

Seguir leyendo →