Gradle - Prueba
La tarea de prueba detecta y ejecuta automáticamente todas las pruebas unitarias en el conjunto fuente de prueba. También genera un informe una vez que se completa la ejecución de la prueba. JUnit y TestNG son las API compatibles.
La tarea de prueba proporciona una Test.getDebug()método que se puede configurar para que se inicie para hacer que la JVM espere un depurador. Antes de continuar con la ejecución, establece la publicación del depurador en5005.
Prueba de detección
los Test Taskdetecta qué clases son clases de prueba inspeccionando las clases de prueba compiladas. De forma predeterminada, analiza todos los archivos .class. Puede establecer inclusiones / exclusiones personalizadas, solo se escanearán esas clases. Dependiendo del marco de prueba utilizado (JUnit / TestNG), la detección de la clase de prueba utiliza diferentes criterios.
Cuando usamos JUnit, buscamos clases de prueba de JUnit 3 y 4. Si alguno de los siguientes criterios coincide, la clase se considera una clase de prueba JUnit:
- Clase o una superclase extiende TestCase o GroovyTestCase
- La clase o una superclase está anotada con @RunWith
- La clase o una superclase contienen un método anotado con @Test
- Cuando usamos TestNG, buscamos métodos anotados con @Test
Note- Las clases abstractas no se ejecutan. Gradle también escanea el árbol de herencia en archivos jar en la ruta de clases de prueba.
Si no desea utilizar la detección de clases de prueba, puede deshabilitarla configurando scanForTestClasses a falso.
Prueba de agrupación
JUnit y TestNG permiten agrupaciones sofisticadas de métodos de prueba. Para agrupar, clases de prueba JUnit y métodos JUnit 4.8 introduce el concepto de categorías. La tarea de prueba permite la especificación de las categorías JUnit que desea incluir y excluir.
Puede utilizar el siguiente fragmento de código en el archivo build.gradle para agrupar métodos de prueba.
test {
useJUnit {
includeCategories 'org.gradle.junit.CategoryA'
excludeCategories 'org.gradle.junit.CategoryB'
}
}
Incluir y excluir pruebas particulares
los Test la clase tiene un include y excludemétodo. Estos métodos se pueden utilizar para especificar qué pruebas deben ejecutarse realmente.
Ejecute solo las pruebas incluidas:
test {
include '**my.package.name/*'
}
Omitir pruebas excluidas -
test {
exclude '**my.package.name/*'
}
La muestra build.gradle archivo como se muestra a continuación, muestra diferentes opciones de configuración.
apply plugin: 'java' // adds 'test' task
test {
// enable TestNG support (default is JUnit)
useTestNG()
// set a system property for the test JVM(s)
systemProperty 'some.prop', 'value'
// explicitly include or exclude tests
include 'org/foo/**'
exclude 'org/boo/**'
// show standard out and standard error of the test JVM(s) on the console
testLogging.showStandardStreams = true
// set heap size for the test JVM(s)
minHeapSize = "128m"
maxHeapSize = "512m"
// set JVM arguments for the test JVM(s)
jvmArgs '-XX:MaxPermSize=256m'
// listen to events in the test execution lifecycle
beforeTest {
descriptor → logger.lifecycle("Running test: " + descriptor)
}
// listen to standard out and standard error of the test JVM(s)
onOutput {
descriptor, event → logger.lifecycle
("Test: " + descriptor + " produced standard out/err: "
+ event.message )
}
}
Puede utilizar la siguiente sintaxis de comando para ejecutar alguna tarea de prueba.
gradle <someTestTask> --debug-jvm