Système..l'impression n'est pas sortie de la console lors de l'exécution de Junit
Lors de l'exécution:
public static void main(String... args) throws InterruptedException {
while (true) {
System.out.print(".");
Thread.sleep(200);
}
}
contre lors de l'exécution d'un même code de junit:
@Test
public void test() throws Exception {
while (true) {
System.out.print(".");
Thread.sleep(200);
}
}
Il y a des comportements différents:
pour le main() - la sortie est affichée comme prévu, que le processus s'exécute ("." -> ".." -> "...")
cependant, pour JUnit, lors de l'exécution d'un même morceau de code, Pas de sortie est affiché en tant que le processus est exécuté - Il est rincé seulement au moment de quitter le test.
Pourquoi cela se produit? Est-il un moyen de le contourner si j'ai besoin de l'état pour être affichés dans la console lors de l'exécution des tests?
J'ai besoin d'imprimer sur la même ligne, l'utilisation d'println ne convient pas.
L'impression d'un retour à la ligne.
avec println il fonctionne, mais j'en ai besoin sans nouvelle ligne...
Pourquoi? Junit tests ne devraient pas avoir besoin d'interaction humaine.
Je pense que cela a été demandé et répondu avant ici: stackoverflow.com/questions/1119385/...
Il fonctionne très bien... j'ai couru la même sur de l'IDE Eclipse. C'est l'impression que les points sur la même ligne pour toutes les 200ms. Veuillez vérifier sur les IDE une fois.
avec println il fonctionne, mais j'en ai besoin sans nouvelle ligne...
Pourquoi? Junit tests ne devraient pas avoir besoin d'interaction humaine.
Je pense que cela a été demandé et répondu avant ici: stackoverflow.com/questions/1119385/...
Il fonctionne très bien... j'ai couru la même sur de l'IDE Eclipse. C'est l'impression que les points sur la même ligne pour toutes les 200ms. Veuillez vérifier sur les IDE une fois.
OriginalL'auteur Lika | 2016-05-22
Vous devez vous connecter pour publier un commentaire.
Il existe de nombreuses façons d'exécuter des tests JUnit (à partir de l'IDE, à partir de l'intérieur d'un système de construction comme Maven, ou à partir d'une ligne de commande qui utilise la librairie JUnit directement). Il semble que la façon dont vous êtes en cours d'exécution, il utilise un standard de sortie qui n'a pas de couleur sur chaque sortie. (C'est probablement intentionnelle, comme souvent, les tests sont exécutés dans un lot à l'aide d'un système d'intégration continue, et les journaux revus par la suite, donc pas de rinçage sur chaque écriture peut améliorer les performances.)
Mais, si vous avez besoin de vider la mémoire tampon explicitement, essayez d'utiliser
System..flush();
après chaque.print
appel.Une autre option, en fonction de ce que vous êtes réellement à la recherche de faire, peut-être l'utilisation d'un complet système de journalisation de l'intégré dans le Système.hors flux.
J'ai aussi eu ce problème lors de l'exécution avec ant
ne fonctionne pas sur intelliJ
OriginalL'auteur Peter Cooper Jr.
Ctrl + Maj + p et de type spectacle de sortie de test. Sinon, vous pouvez ouvrir la fenêtre de sortie (Ctrl + J) et choisir de voir l'Essai de Sortie d'une zone de liste modifiable sur le coin supérieur droit.
OriginalL'auteur Leandro Tavares
Cela ne fonctionne toujours pas dans IntelliJ 2019. *soupir*
Pour atteindre un peu ce que vous cherchez, j'ai dû forcer un saut de ligne périodiquement comme ceci:
OriginalL'auteur Drakes