J'ai quelques cas de test que Junit me raconte le temps sur 10000 ms lorsque l'ensemble du test ne dure que quelques secondes. Voici la sortie:
------------------------------------------------------------------------------- Test set: com.w2ogroup.analytics.sibyl.transport.impl.http.server.HttpServerTransportTests ------------------------------------------------------------------------------- Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 3.136 sec <<< FAILURE! closeTest1(com.w2ogroup.analytics.sibyl.transport.impl.http.server.HttpServerTransportTests) Time elapsed: 2.218 sec <<< ERROR! java.lang.Exception: test timed out after 10000 milliseconds closeTest2(com.w2ogroup.analytics.sibyl.transport.impl.http.server.HttpServerTransportTests) Time elapsed: 0.661 sec <<< ERROR! java.lang.Exception: test timed out after 50000 milliseconds
4 Réponses :
Junit détecte un test qui a expiré par attraper un est-il possible que l'un de vos tests défaillants jette cette exception elle-même et que Junit le signalait comme un délai d'attente de test? P> timeoutException code>
. Cela sera normalement causé par le cadre de test appelant shutdownnet code>
sur le exécutorservice code> qui exécute le test. P>
C'est une grande information. +1. Mon code ne jette définitivement pas un TimeoutException code>, et je ne pense pas que mon test soit non plus. Je ferme les flux et interrompre les fils Nio, cependant; Êtes-vous au courant d'une raison quelconque pour laquelle ceux-ci jettent un
timeoutException code>? Je vais envelopper mes tests dans un
essayer code> /
attraper code> pour tester cette hypothèse.
timeoutException code> est utilisé par
exécutantservice code>, qui est fortement utilisé par les classes code> Nio code>. Je suppose donc à l'intérieur que les classes
Nio code> déclenchent le délai d'exécution.
Avez-vous de modification d'un délai d'expiration défini pour les tests?
@Rule public Timeout globalTimeout= new Timeout(10);
Bonne question. J'utilise @Test (timeout = 10000) code>. J'ai mis à jour la question.
On dirait que la connexion est suspendue et le test ne finit pas vraiment après quelques secondes. p> Essayez de vous concentrer sur la voir des exemples de ce problème: p>
C'est un problème avec Junit. En fait, le message "Test chronométré" apparaît s'il y a une résulte: p> qui est déroutant de dire le moins. Cela se produit même si vous utilisez le règle du délai d'attente . Donc, dans votre exemple, vous lancez une et ceci provoque la fausse exception du délai d'attente. P> Ceci est un bug en 4.11 (et précédent), mais cela fonctionne correctement dans 4.12-Snapshot, il produit: P> interromptionException code>:
interromptionException code> p>
java.lang.InterruptedException: hello
at xxx.xxx.xxx.FooTest.timeoutTest(FooTest.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
...
Montrez-nous les écoles ...
@Stephenc a mis à jour la question.
Intéressant ... mais je voulais dire la stacktrace qui inclut le
java.lang.exception code>. Cela devrait être dans les rapports Surefire.
@Stephenc derp. Mis à jour la question.