Cómo ejecutar JUnit JUnit y 5 suites de 4 pruebas en Gradle?

Kelsall:

Tengo dos tipos de pruebas en mi código, que termina con unittest y IntegrationTest. Por supuesto hay algunos legado JUnit 4 tests y otros nuevos supuestos para ser escrita con JUnit 5.

Lo que quiero:

UnitTestSuite clases y IntegrationTestSuit que podría ejecutar desde el IDE (IntelliJ IDEA) y cada uno de ellos tienen filtros por el nombre de la clase que termina de pruebas. También quiero dos tareas diferentes Gradle cada uno para dirigir su propio conjunto de pruebas (basado en trajes idealmente, o también en los nombres de las clases por lo menos).

Lo que he intentado:

Este conjunto de pruebas funciona bien desde el IDE, y como yo lo entiendo debe ejecutar ambos JUnit JUnit 4 y 5 pruebas. Sin embargo, parece que este enfoque es más como un soporte suites real solución y no.

@RunWith(JUnitPlatform.class)
@IncludeClassNamePatterns({ "^.*UnitTest$" })
public class UnitTestSuite {
}

También creé esta tarea Gradle, pero no se ejecuta ninguna prueba que me decía:

WARNING: Ignoring test class using JUnitPlatform runner

test { Test t ->

    useJUnitPlatform()

    include "UnitTestSuite.class"
}

Entonces, ¿hay una solución para ejecutar ambos JUnit JUnit 4 y 5 pruebas, filtrados por nombre (recogido en trajes) de la IDE y de la tarea Gradle?

Sam Brannen:

En Gradle puede configurar varias testtareas, una para JUnit 4 y otro para JUnit 5.

Hice exactamente que en la construcción Spring Framework. Ver el testJUnitJupitery testtareas en la primavera-test.gradle .

task testJUnitJupiter(type: Test) {
    description = "Runs JUnit Jupiter tests."
    useJUnitPlatform {
        includeEngines "junit-jupiter"
        excludeTags "failing-test-case"
    }
    filter {
        includeTestsMatching "org.springframework.test.context.junit.jupiter.*"
    }
    reports.junitXml.destination = file("$buildDir/test-results")
    // Java Util Logging for the JUnit Platform.
    // systemProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager")
}

test {
    description = "Runs JUnit 4 tests."
    dependsOn testJUnitJupiter, testNG
    useJUnit()
    scanForTestClasses = false
    include(["**/*Tests.class", "**/*Test.class"])
    exclude(["**/testng/**/*.*", "**/jupiter/**/*.*"])
    reports.junitXml.destination = file("$buildDir/test-results")
}

Por supuesto, puede nombrarlos y configurarlos como quiera.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=181449&siteId=1
Recomendado
Clasificación