Me gustaría ver los resultados de la prueba (system.out / err, mensajes de registro de los componentes que se están probando) mientras se ejecutan en la misma consola que ejecuto:
gradle test
Y no espere hasta que se realicen las pruebas para ver los informes de las pruebas (que solo se generan cuando se completan las pruebas, por lo que no puedo "seguir nada" mientras se ejecutan las pruebas)
test
cierre.-i
arrojará un montón de informaciones irrelevantes en la terminal.grep
para filtrar los miles de líneas no deseadas. Ver stackoverflow.com/questions/3963708/…Aquí está mi versión elegante:
fuente
|
delstartItem
porque ejecutar la tarea a través de Android Studio 2.2.3 los reconoce como errores en los mensajes y fue molesto en las compilaciones exitosas.Puede agregar un cierre Groovy dentro de su archivo build.gradle que hace el registro por usted:
En su consola, se lee así:
Desde la versión 1.1, Gradle admite muchas más opciones para registrar la salida de prueba . Con esas opciones disponibles, puede lograr un resultado similar con la siguiente configuración:
fuente
Como stefanglase respondió:
agregar el siguiente código a su
build.gradle
(desde la versión 1.1) funciona bien para la salida en pruebas aprobadas , omitidas y fallidas .Lo que quiero decir adicionalmente (descubrí que esto es un problema para los principiantes) es que el
gradle test
comando ejecuta la prueba solo una vez por cambio .Entonces, si lo está ejecutando la segunda vez, no habrá salida en los resultados de la prueba . También puede ver esto en la salida del edificio: Gradle luego dice ARRIBA AL DÍA en las pruebas. Por lo tanto, no se ejecuta por enésima vez.
Gradle inteligente!
Si desea forzar la ejecución de los casos de prueba, use
gradle cleanTest test
.Esto está un poco fuera de tema, pero espero que ayude a algunos novatos.
editar
Como sparc_spread declaró en los comentarios:
Si desea forzar Gradle a nuevos ensayos siempre se corre (que no siempre pueden ser una buena idea) se puede añadir
outputs.upToDateWhen {false}
atestLogging { [...] }
. Sigue leyendo aquí .Paz.
fuente
gradle cleanTest test
cada vez (a partir de Gradle 1.12). Añadiroutputs.upToDateWhen {false}
atestLogging {...}
y que debe hacer el truco. Obligará a Gradle a ejecutar las pruebas cada vez. Encontré esto en los foros de Gradle, publicado por el mismo Dockter . Espero que esto ayude.exceptionFormat "full"
para obtener detalles acerca de lo que falló, útil cuando se está utilizando AssertJ o IIb similar.cleanTest
que pueda usartest --rerun-tasks
--rerun-tasks
volverá a ejecutar todas sus tareas, no solo las tareas para las pruebas.cleanTest test
en el último Android Studio y Gradle 3.3 no funciona de mi lado, pero--rerun-tasks
funcionó. No se porque. Pero leer esta respuesta realmente resolvió mi dolor de cabeza, ¿dónde está el registro de la prueba f ** king después de agregar todo?Descargo de responsabilidad: soy el desarrollador del complemento Gradle Test Logger.
Simplemente puede usar el complemento Gradle Test Logger para imprimir hermosos registros en la consola. El complemento utiliza valores predeterminados razonables para satisfacer a la mayoría de los usuarios con poca o ninguna configuración, pero también ofrece una serie de temas y opciones de configuración para todos los gustos.
Ejemplos
Tema estándar
Tema Mocha
Uso
Asegúrese de obtener siempre la última versión de Gradle Central .
Configuración
No necesita ninguna configuración en absoluto. Sin embargo, el complemento ofrece algunas opciones. Esto se puede hacer de la siguiente manera (se muestran los valores predeterminados):
Espero que disfrutes usándolo.
fuente
slowThreshold
en0
.Agregue esto a
build.gradle
para evitar que gradle trague stdout y stderr.Está documentado aquí .
fuente
La tarea 'prueba' no funciona para el complemento de Android, para el complemento de Android use lo siguiente:
Consulte lo siguiente: https://stackoverflow.com/a/31665341/3521637
fuente
Como seguimiento a la gran respuesta de Shubham, me gustaría sugerir el uso de valores de enumeración en lugar de cadenas . Por favor, eche un vistazo a la documentación de la clase TestLogging .
fuente
Mi versión minimalista favorita basada en la respuesta de Shubham Chaudhary.
Pon esto en el
build.gradle
archivo:fuente
En Gradle usando el complemento de Android:
Entonces la salida será:
fuente
Combinar la gran respuesta de Shubham y JJD usan enum en lugar de string
fuente
Siguiendo la respuesta de Benjamin Muschko (19 de marzo de 2011), puede usar la
-i
bandera junto con grep , para filtrar miles de líneas no deseadas. Ejemplos:Filtro fuerte : solo muestra el nombre y el resultado de cada prueba de unidad, y el estado general de construcción. Los errores o excepciones de configuración no se muestran.
Filtro suave : muestra el nombre y el resultado de la prueba de cada unidad, así como los errores / excepciones de configuración. Pero también incluirá información irrelevante:
Filtro suave, sintaxis alternativa: (los tokens de búsqueda se dividen en cadenas individuales)
Explicación de cómo funciona: la salida del primer comando,
./gradlew test -i
se canaliza a un segundo comandogrep
, que filtrará muchas líneas no deseadas en función de una expresión regular."-E"
habilita el modo de expresión regular y"|"
significa "o". Se puede mostrar un nombre de prueba de unidad y el resultado usando" > "
, y el estado general se permite con"BUILD"
. En el filtro suave, la"-v"
bandera significa "no contiene" y"^"
significa "inicio de línea". Por lo tanto, elimina todas las líneas que comienzan con "Ejecutando" o comienzan con "Creando", etc.Ejemplo para pruebas de unidad de instrumentación de Android, con gradle 5.1:
Ejemplo de cobertura de prueba de unidad Jacoco, con gradle 4.10:
fuente
Si tiene un DSL de Kotlin
build.gradle.kts
escrito , puede imprimir los resultados de la prueba con (estaba desarrollando un proyecto multiplataforma de Kotlin, sin el complemento "java" aplicado):fuente
Simplemente agregue el siguiente cierre a su build.gradle. la salida se imprimirá después de la ejecución de cada prueba.
fuente