Solución:
los maven-surefire-plugin
, a partir de hoy, no tiene soporte completo de JUnit 5. Hay un problema abierto sobre la adición de este soporte en SUREFIRE-1206.
Como tal, debe utilizar un proveedor personalizado. Uno ya ha sido desarrollado por el equipo de JUnit; de la guía del usuario, debe agregar el junit-platform-surefire-provider
proveedor y el TestEngine
implementación para la nueva API:
maven-surefire-plugin
2.19.1
org.junit.platform
junit-platform-surefire-provider
1.0.3
org.junit.jupiter
junit-jupiter-engine
5.0.3
Además, asegúrese de declarar el junit-jupiter-api
dependencia con un alcance de test
:
org.junit.jupiter
junit-jupiter-api
5.0.3
test
Actualización 2
El problema se ha solucionado en Maven Surefire Plugin v2.22.0
La nueva versión está disponible en Maven Central Repository.
Maven
org.apache.maven.plugins
maven-surefire-plugin
2.22.0
Gradle
compile group: 'org.apache.maven.plugins', name: 'maven-surefire-plugin', version: '2.22.0'
Actualizar
Como señaló Marian, la última versión de Proveedor Surefire de la plataforma JUnit 5 (1.2.0) admite la última versión de Complemento Maven Surefire (2.21.0):
org.apache.maven.plugins
maven-surefire-plugin
2.21.0
org.junit.platform
junit-platform-surefire-provider
1.2.0
Ejemplo
pom.xml
org.junit.jupiter
junit-jupiter-engine
5.2.0
test
org.apache.maven.plugins
maven-surefire-plugin
2.21.0
org.junit.platform
junit-platform-surefire-provider
1.2.0
TestScenario.java
package test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class TestScenario
@Test
@DisplayName("Test 2 + 2 = 4")
public void test()
Assertions.assertEquals(4, 2 + 2);
Salida (instalación limpia de mvn)
…
[INFO] — Maven-surefire-plugin: 2.21.0: prueba (prueba predeterminada) @ prueba —
[INFO]
[INFO]————————————————– —–
[INFO] PRUEBAS
[INFO]————————————————– —–
[INFO] Ejecutando test.TestScenario
[INFO] Pruebas ejecutadas: 1, Fallos: 0, Errores: 0, Omitidos: 0, Tiempo transcurrido: 0,005 s – en la prueba.
[INFO]
[INFO] Resultados:
[INFO]
[INFO] Pruebas ejecutadas: 1, Fallos: 0, Errores: 0, Omitidos: 0
…
La forma más sencilla hasta hoy:
maven-surefire-plugin
2.19.1
org.junit.platform
junit-platform-surefire-provider
1.1.0
De la documentación de JUnit 5:
Comenzando con la versión
2.22.0
, Maven Surefire proporciona soporte nativo para ejecutar pruebas en la plataforma JUnit.
Adicionalmente puedes leer en el maven-surefire-plugin
documentación:
Uso de la plataforma JUnit 5
Para comenzar con la plataforma JUnit, debe agregar al menos una
TestEngine
implementación a su proyecto. Por ejemplo, si desea escribir pruebas con Júpiter, agregue el artefacto de pruebajunit-jupiter-engine
a las dependencias en POM
Así que eso es suficiente para ejecutar las pruebas de JUnit 5:
4.0.0
davidxxx
minimal-pom-junit5
0.0.1-SNAPSHOT
5.2.0
1.8
1.8
org.junit.jupiter
junit-jupiter-engine
$junit-jupiter.version
test
org.junit.jupiter
junit-jupiter-params
$junit-jupiter.version
test
maven-surefire-plugin
2.22.0
En mi espacio de GitHub, agregué un proyecto maven de muestra en funcionamiento que puede navegar / clonar.
URL: https://github.com/ebundy/junit5-minimal-maven-project
Si crees que te ha sido provechoso este post, agradeceríamos que lo compartas con el resto juniors y nos ayudes a difundir esta información.