Gradle: Comment faire pour Afficher les Résultats du Test dans la Console en Temps Réel?
Je voudrais voir les résultats du test ( le système.out/err, les messages du journal de composants testés ) comme ils courent dans la même console, je cours:
gradle test
Et de ne pas attendre jusqu'à ce que les tests sont fait pour regarder les rapports de test ( qui ne sont générés que lorsque les tests sont terminés, donc je ne peux pas "tail-f" quoi que ce soit alors que des tests sont en cours d'exécution )
Vous devez vous connecter pour publier un commentaire.
Vous pourriez exécuter Gradle avec le niveau de journalisation INFO sur la ligne de commande. Il va vous montrer le résultat de chaque test alors qu'ils sont en cours d'exécution. Inconvénient est que vous aurez beaucoup plus de sortie pour d'autres tâches aussi.
test
fermeture.-i
va jeter un tas de pertinence d'infos sur le terminal.grep
pour filtrer les milliers de lignes indésirables. Voir stackoverflow.com/questions/3963708/...Vous pouvez ajouter un Groovy de fermeture à l'intérieur de votre build.gradle fichier qui ne la journalisation pour vous:
Sur votre console puis, il se lit comme suit:
Depuis la version 1.1 Gradle prend en charge beaucoup plus d'options pour le journal de sortie de test. Avec ces options à portée de main, vous pouvez obtenir un résultat similaire avec la configuration suivante:
Voici ma fantaisie version:
|
de lastartItem
, car l'exécution de la tâche via Android Studio 2.2.3 les reconnaître comme des erreurs dans les messages, et il est gênant sur le succès construit.Comme stefanglase répondu:
ajoutant le code suivant à votre
build.gradle
(depuis la version 1.1) fonctionne très bien pour la sortie sur le passé, sauté et échoué tests.Ce que je veux dire en plus (j'ai trouvé que c'est un problème pour les débutants), c'est que le
gradle test
commande exécute le test qu'une seule fois par le changement.Donc, si vous exécutez la deuxième fois il n'y aura pas de sortie sur les résultats des tests. Vous pouvez le voir dans le bâtiment de sortie: gradle dit alors À JOUR sur les tests. Donc ce n'est pas exécuté une n-ème fois.
Smart gradle!
Si vous voulez forcer les cas de test à exécuter, utiliser
gradle cleanTest test
.C'est un peu hors sujet, mais j'espère que ça aidera certains débutants.
modifier
Comme sparc_spread indiqué dans les commentaires:
Si vous voulez forcer gradle pour toujours exécuter frais tests (qui pourrait ne pas toujours être une bonne idée), vous pouvez ajouter
outputs.upToDateWhen {false}
àtestLogging { [...] }
. Continuer la lecture ici.La paix.
gradle cleanTest test
à chaque fois (comme de Gradle 1.12). Ajouteroutputs.upToDateWhen {false}
àtestLogging {...}
et cela devrait faire l'affaire. Il sera force de Gradle pour exécuter les tests de tous les temps. J'ai trouvé ce dans le Gradle forums, posté par Dockter lui-même. Espérons que cette aide.exceptionFormat "full"
pour obtenir plus de détails sur ce qui a échoué, c'est utile lorsque vous utilisez AssertJ ou similaire lib.cleanTest
vous pouvez utilisertest --rerun-tasks
--rerun-tasks
permettra de réaliser toutes vos tâches à réexécuter, et pas seulement les tâches pour les tests.cleanTest test
sur la dernière version d'Android Studio et gradle 3.3 ne fonctionne pas de mon côté, mais--rerun-tasks
a fait le tour. Je ne sais pas pourquoi. Mais la lecture de cette réponse vraiment résolu mon mal de tête, où est la f**king test de journalisation après l'ajout de chaque chose.Disclaimer: je suis le développeur de la Gradle Test de l'Enregistreur de Plugin.
Vous pouvez simplement utiliser la Gradle Test De L'Enregistreur De Plugin pour imprimer de belles journaux sur la console. Le plugin utilise des valeurs par défaut raisonnables pour satisfaire la plupart des utilisateurs avec peu ou pas de configuration, mais offre également un certain nombre de thèmes et d'options de configuration pour tous les goûts.
Exemples
Thème Standard
Moka le thème
Utilisation
Assurez-vous que vous obtenez toujours la la dernière version de Gradle Centrale.
Configuration
Vous n'avez pas besoin d'aucune configuration à tous. Cependant, le plugin propose quelques options. Cela peut être fait comme suit (les valeurs par défaut affichées):
J'espère que vous aurez plaisir à l'utiliser.
slowThreshold
à0
.Ajouter à
build.gradle
pour arrêter gradle de la déglutition stdout et stderr.Il est documenté ici.
'test' tâche ne fonctionne pas pour Android plugin, pour Android plugin utiliser les éléments suivants:
Voir la suivante: https://stackoverflow.com/a/31665341/3521637
Suivi de Shubham de la grande réponse je voudrais proposer l'aide de enum valeurs au lieu de chaînes. Veuillez prendre un coup d'oeil à la la documentation de la classe TestLogging.
Mon préféré minimaliste version basée sur Shubham Chaudhary réponse.
Mettre cela en
build.gradle
fichier:Dans Gradle utilisant Android plugin:
Alors la sortie sera:
De fusion de Shubham de la grande réponse et JJD utiliser enum au lieu de string
La suite de Benjamin Muschko réponse (19 Mars 2011), vous pouvez utiliser le
-i
drapeau avec grep, pour filtrer 1000s des lignes indésirables. Exemples:Forte filtre - Seulement l'affichage de chaque unité nom de test et le résultat, et l'ensemble de l'état de création. Les erreurs d'installation ou les exceptions ne sont pas affichés.
Doux filtre - Affichage de chaque unité nom de test et le résultat, ainsi que l'installation des erreurs/exceptions. Mais il sera également inclure des non pertinentes info:
Douce filtre, syntaxe Alternative: (recherche des jetons sont répartis dans les différentes cordes)
Explication de la façon dont il fonctionne: la sortie de La première commande,
./gradlew test -i
, est canalisée vers une deuxième commandegrep
, qui permettra de filtrer beaucoup de lignes indésirables basée sur une expression régulière."-E"
permet l'expression régulière de la mode, et"|"
signifie "ou". Une unité de nom de test et le résultat est autorisé à afficher à l'aide de" > "
, et l'état général est autorisé à"BUILD"
. Dans la douce filtre, le"-v"
drapeau signifie "ne contenant pas" et"^"
signifie "début de ligne". Donc, il supprime toutes les lignes qui commencent par "Exécution" ou de commencer avec "la Création ", etc.Exemple pour Android instrumentation de tests unitaires, avec gradle 5.1:
Exemple pour Jacoco couverture de tests unitaires, avec gradle 4.10: