मेरे पास कुछ परीक्षण मामले हैं जो जुनीट मुझे 10000ms में समय बता रहा है जब पूरा परीक्षण केवल कुछ सेकंड तक चलता है। यहाँ उत्पादन है:जुनीट टेस्ट "टाइम्स आउट" जल्दी से निष्पादन के बावजूद?
Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.528 sec <<< FAILURE!
closeTest1(com.w2ogroup.analytics.sibyl.transport.impl.http.server.HttpServerTransportTests) Time elapsed: 1.654 sec <<< ERROR!
java.lang.Exception: test timed out after 10000 milliseconds
closeTest2(com.w2ogroup.analytics.sibyl.transport.impl.http.server.HttpServerTransportTests) Time elapsed: 0.672 sec <<< ERROR!
java.lang.Exception: test timed out after 50000 milliseconds
Results :
Tests in error:
HttpServerTransportTests » test timed out after 10000 milliseconds
HttpServerTransportTests » test timed out after 50000 milliseconds
Tests run: 3, Failures: 0, Errors: 2, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.383s
[INFO] Finished at: Sun Jun 09 19:00:09 PDT 2013
[INFO] Final Memory: 9M/129M
[INFO] ------------------------------------------------------------------------
यह संभावना नहीं लगता है कि मेरी परीक्षण 10 से अधिक (या 50) सेकंड ले रही है जब पूरे परीक्षण चालन केवल 4.3s चली चलाने के लिए द्वारा समय समाप्त हो गया है।
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<!--
We always want to exclude provided deps. I'm not sure why this
isn't the default.
-->
<classpathDependencyScopeExclude>provided</classpathDependencyScopeExclude>
<includes>
<include>**/*Tests.*</include>
</includes>
</configuration>
</plugin>
किसी को भी इस क्यों हो रहा हो सकता के बारे में कोई विचार है: :)
यहाँ अचूक विन्यास पोम से मैं परीक्षण चलाने के लिए उपयोग कर रहा हूँ है?
EDIT: नीचे अनुरोध के अनुसार यहां कुछ और जानकारी दी गई है।
यहां परीक्षणों में से एक का आउटपुट है। मैं एक साधारण परिवहन तंत्र का निर्माण कर रहा हूं, इसलिए मैं यूनिट परीक्षणों का निर्माण कर रहा हूं जो नजदीकी धाराएं और एनआईओ धागे को बाधित करने के लिए बाधित करती हैं, यही कारण है कि उन सभी (अपेक्षित) आईओ-प्रकार Exception
एस हैं।
Running com.siggroup.analytics.sibyl.transport.impl.http.server.HttpServerTransportTests
2013-06-10 08:32:53.195:INFO:oejs.Server:Thread-0: jetty-9.0.3.v20130506
Jun 10, 2013 8:32:53 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM'
2013-06-10 08:32:53.925:INFO:oejsh.ContextHandler:Thread-0: Started [email protected]{/,null,AVAILABLE}
2013-06-10 08:32:54.136:INFO:oejs.ServerConnector:Thread-0: Started [email protected]{HTTP/1.1}{0.0.0.0:8080}
org.eclipse.jetty.server.HttpConnection$Input$1: [email protected]{/127.0.0.1:58667<r-l>/127.0.0.1:8080,o=true,is=false,os=false,[email protected]$
EOF
at org.eclipse.jetty.server.HttpConnection$Input.blockForContent(HttpConnection.java:588)
at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:130)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:126)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:112)
at java.io.InputStreamReader.read(InputStreamReader.java:168)
at com.siggroup.analytics.sibyl.transport.impl.http.server.WorkerTrackingDelegatingReader$2.work(WorkerTrackingDelegatingReader.java:64)
at com.siggroup.analytics.sibyl.transport.impl.http.server.WorkerTrackingDelegatingReader$2.work(WorkerTrackingDelegatingReader.java:1)
at com.siggroup.analytics.commons.concurrent.Scope.work(Scope.java:49)
at com.siggroup.analytics.sibyl.transport.impl.http.server.WorkerTrackingDelegatingReader.read(WorkerTrackingDelegatingReader.java:60)
at java.io.FilterReader.read(FilterReader.java:65)
at java.io.PushbackReader.read(PushbackReader.java:90)
at com.siggroup.sibyl.transport.impl.readerwriter.ReaderWriterTransportReaderThread.readPacket(ReaderWriterTransportReaderThread.java:32)
at com.siggroup.sibyl.transport.impl.queued.QueuedTransportReaderThread.run(QueuedTransportReaderThread.java:21)
Caused by: java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at java.util.concurrent.Semaphore.acquire(Semaphore.java:317)
at org.eclipse.jetty.util.BlockingCallback.block(BlockingCallback.java:96)
at org.eclipse.jetty.server.HttpConnection$Input.blockForContent(HttpConnection.java:559)
... 15 more
2013-06-10 08:32:54.958:WARN:oejs.HttpConnection:qtp557611759-26: [email protected]{FILLING_BLOCKED},g=HttpGenerator{s=END},p=HttpParser{s=CHUNKED_CONTENT,1 of$
java.lang.IllegalStateException: Already Blocked
at org.eclipse.jetty.io.AbstractConnection.block(AbstractConnection.java:233)
at org.eclipse.jetty.server.HttpConnection.access$400(HttpConnection.java:50)
at org.eclipse.jetty.server.HttpConnection$Input.blockForContent(HttpConnection.java:557)
at org.eclipse.jetty.server.HttpInput.consumeAll(HttpInput.java:282)
at org.eclipse.jetty.server.HttpConnection.completed(HttpConnection.java:460)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:225)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:596)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:527)
at java.lang.Thread.run(Thread.java:722)
java.io.EOFException
at com.siggroup.sibyl.transport.impl.readerwriter.ReaderWriterTransportReaderThread.readPacket(ReaderWriterTransportReaderThread.java:36)
at com.siggroup.sibyl.transport.impl.queued.QueuedTransportReaderThread.run(QueuedTransportReaderThread.java:21)
परीक्षण @Test(timeout=/* number */)
के साथ चलाए जाते हैं।
@Test(timeout = 10000)
public void closeTest1() throws IOException, InterruptedException {
/* Test goes here */
}
संपादित:, भावी पीढ़ी के लिए @ MatthewFarwell का जवाब नीचे है: यहाँ परीक्षण मामलों में से एक के हस्ताक्षर है
-------------------------------------------------------------------------------
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.12-स्नैपशॉट मेवेन सेंट्रल में उपलब्ध नहीं था, इसलिए अधिक भंडार स्थापित करने और स्नैपशॉट आर्टिफैक्ट पर निर्भरता रखने के बजाय, मैंने /catch
में InterruptedException
एस के लिए अपना टेस्ट केस लपेट लिया, जिसने टेस्ट केस रखा InterruptedException
का प्रचार करने से, जिसने समस्या को हल किया।
हमें स्टैकट्रैक दिखाएं ... –
@StephenC ने प्रश्न को अद्यतन किया। – sigpwned
दिलचस्प ... लेकिन मेरा मतलब स्टैकट्रैक था जिसमें 'java.lang.Exception' शामिल है। यह निश्चित रिपोर्ट में होना चाहिए। –