Test Gradle con JUnit 5

De ChuWiki


Con JUnit4 no había ningún problema especial con gradle, bastaba poner la dependencia de test y todo funcionaba correctamente. Sin embargo, con Gradle y JUnit5, usando junit-jupiter-engine, suele ser habitual un error No tests found for given includes porque es necesaria una pequeña configuración adicional.. No nos pasa si usamos junit-vintage-engine

Veamos cómo configurar Gradle para usar Junit 5 con junit-jupiter-engine

Indicarle a Gradle que use junitPlatform[editar]

Vamos al grano, para evitar el error No tests found for given includes sólo tienes que poner en tu fichero build.gradle

test {
    useJUnitPlatform()
}

El motivo. JUnit 5 usa una base, junit-platform-engine y luego dos posibles implementaciones, junit-jupiter-engine y junit-vintage-engine. La primera implementación es para los nuevos test al estilo JUnit 5. La segunda permite usar los antiguos test de Junit 4, es decir, sería la implementación JUnit 4 para la nueva junit-platform-engine.

Pues bien, a Gradle hay que indicarle que use la nueva junit platform de JUnit 5 si queremos hacer test con junit-jupiter-engine. No es necesario si usamos junit-vintage-engine.

Dependencias gradle junit-jupiter-engine[editar]

Resumiendo, si quieres usar junit-jupiter-engine con Gradle, debes poner lo siguiente en tu fichero build.gradle

// Para Junit5 jupinter engine
test {
    useJUnitPlatform()
}

dependencies {
    testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.2'
}

Dependencias gradle junit-vintage-engine[editar]

Sin embargo, si usas la implementación compatible con Junit 4, no necesitas añadir useJunitPlatform, basta añadir la dependencia de junit-vintage-engine

dependencies {
    testImplementation group: 'org.junit.vintage', name: 'junit-vintage-engine', version: '5.10.2'
}