No dejes de compartir nuestro espacio y códigos con tus amigos, necesitamos de tu ayuda para aumentar esta comunidad.
Solución:
A partir de Gradle 4.6 (creo), hay compatibilidad nativa con JUnit 5. Simplemente puede incluir JUnit5 de la siguiente manera:
dependencies
testCompile "org.junit.jupiter:junit-jupiter-api:5.2.0"
testCompile "org.junit.jupiter:junit-jupiter-params:5.2.0"
testRuntime "org.junit.jupiter:junit-jupiter-engine:5.2.0"
También necesitarás:
test
useJUnitPlatform()
JUnit 4 y 5 usan diferentes nombres de paquetes, por lo que pueden coexistir en el mismo proyecto. Muchas de las anotaciones son las mismas (@Test
etc) así que asegúrese de incluirlos desde el org.junit.jupiter.api
paquete.
aquí está usando implementación en vez de compilar.
test
useJUnitPlatform()
dependencies
testImplementation('org.springframework.boot:spring-boot-starter-test')
exclude group: 'junit', module: 'junit'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.4.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.2'
Actualización 2020-10-29
En nuestro proyecto Spring Boot 2.3, ya no necesitábamos este fragmento. Ya estaba usando JUnit 5 por defecto.
Aparecen versiones más nuevas de spring-boot-starter-test
(visto en 2.2.6/2.2.7) están importando org.junit.vintage:junit-vintage-engine
que tiene una dependencia transitiva de junit:junit
. Excluyendo solo junit
me dio algunos errores espurios:
May 13, 2020 9:20:05 AM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-vintage' failed to discover tests
java.lang.NoClassDefFoundError: junit/runner/Version
...
Caused by: java.lang.ClassNotFoundException: junit.runner.Version
...
Ajuste:
testCompile('org.springframework.boot:spring-boot-starter-test')
exclude group: 'org.junit.vintage'
hizo el truco para mí y todas las pruebas continúan funcionando bien
Recuerda algo, que tienes la capacidad de valorar este enunciado si tropezaste tu atolladero justo a tiempo.