में बार-बार चलते हैं, इसलिए मुझे इस समस्या का सामना करना पड़ रहा है क्योंकि मैंने नए निर्देश परीक्षणों (एक जेएचप्स्टर परियोजना में) का एक गुच्छा बनाया है। कर्म इकाई परीक्षणों को एक गंभीर कार्य द्वारा निष्पादित किया जाता है।कर्म इकाई परीक्षण एक अनंत लूप
https://github.com/karma-runner/karma/issues/1077
https://github.com/karma-runner/karma/issues/393
अंतर है: मैं स्पष्ट रूप से उजागर करने के लिए है कि मेरी समस्या अलग है से इन दोनों (और कुछ अन्य लोगों मैं पोस्ट करने की अनुमति नहीं कर रहा हूँ) है कि मैं GitHub पर पाया चाहते हैं कि कर्म कभी परीक्षणों को निष्पादित नहीं किया जाता है, लेकिन उन्हें एक लूप में चलाता रहता है जैसे कि कॉन्फ़िगर किए गए स्थान में असीमित परीक्षण होते हैं। यह स्पष्ट रूप से कमांड लाइन उत्पादन पर देखा जा सकता:
Firefox 45.0.0 (Windows 7 0.0.0): Executed 321 of 192 (skipped 7) SUCCESS (0 secs/1 min 3.757 secs)
Chrome 51.0.2704 (Windows 7 0.0.0): Executed 399 of 192 (skipped 11) SUCCESS (0 secs/1 min 2.239 secs)
PhantomJS 2.1.1 (Windows 7 0.0.0): Executed 444 of 192 (skipped 11) SUCCESS (0 secs/1 min 0.515 secs)
और यह हमेशा के लिए चला जाता है। निष्पादन के लगभग एक घंटे बाद, यह परिणाम है:
Chrome 51.0.2704 (Windows 7 0.0.0): Executed 20171 of 192 (skipped 472) SUCCESS (0 secs/50 mins 7.281 secs)
Firefox 45.0.0 (Windows 7 0.0.0): Executed 3186 of 192 (skipped 72) DISCONNECTED (14 mins 48.503 secs/12 mins 16.547 secs)
PhantomJS 2.1.1 (Windows 7 0.0.0): Executed 27054 of 192 (skipped 611) DISCONNECTED (48 mins 25.253 secs/47 mins 34.776 secs)
यह कोई फर्क नहीं पड़ता परीक्षण पास या असफल, या क्यों वे असफल (TypeError, ReferenceError...
), परीक्षण हमेशा के लिए परवाह किए बिना चलाने के लिए कि क्या (सभी परीक्षणों यहाँ गुजरती हैं, के रूप में आप कर सकते हैं देख)। निष्पादन केवल तब बंद हो जाता है जब मैं कमांड लाइन में गंदे कार्य को रोकता हूं।
कर्म कॉन्फ़िगरेशन और पिछले कुछ महीनों में कचरा कार्य नहीं बदला है। सिंगलरुन और ऑटोवॉच सेटिंग्स (साथ ही साथ कोई अन्य) अप्रासंगिक हैं।
परीक्षण के तहत कोड अप्रासंगिक प्रतीत होता है। कुछ बदलाव, उन्होंने थोड़ी देर के लिए समस्या दूर कर दी, लेकिन जैसे ही मैं नए परीक्षण लिखता हूं, यह हमेशा वापस आता है। बेशक मैंने पहले सोचा था कि मेरा कोड दोष था, लेकिन अनुवर्ती दिखाएंगे कि यह तार्किक निष्कर्ष क्यों नहीं है।
अजीब व्यवहार हमेशा एक नया परीक्षण बनाते समय शुरू होता है, लेकिन परीक्षण कोड स्वयं अप्रासंगिक प्रतीत होता है, क्योंकि नए परीक्षण कभी भी किसी विशेष ऑपरेशन या कवर घटकों का उपयोग नहीं करते हैं जो अन्य परीक्षण नहीं करते हैं। इसके अलावा, भले ही नया परीक्षण एक पूरी तरह से खाली कार्य निकाय है, फिर भी यह अजीब व्यवहार का परिणाम देता है जो बताता है कि यह कार्यक्रम में एक नया निर्णय पथ नहीं है जो परीक्षण के दौरान समस्या का कारण बनता है। यही कारण है कि मुझे विश्वास नहीं है कि कोड दोष है। मैं यादृच्छिक परीक्षणों को बंद करके अनंत निष्पादन को रोकने में भी कामयाब रहा (जिसे हम बिना किसी समस्या के लंबे समय तक उपयोग करते हैं), लेकिन जब मैंने नए परीक्षण जोड़े तो समस्या हमेशा वापस आई।
पर्यावरण अप्रासंगिक है। टेस्ट सर्वर पर और विंडोज़ पर सीआई में टेस्ट असीमित रूप से चलते हैं।
मैंने यह भी सोचा कि शायद यह एक स्मृति सीमा समस्या है, क्योंकि थोड़ी देर के लिए, ब्राउज़र एक निश्चित परीक्षण में दुर्घटनाग्रस्त हो गया है जिसमें नई सुविधा या नए परीक्षणों के साथ कुछ भी नहीं है (और महीनों के लिए ठीक काम कर रहा है) । जब मैंने उस परीक्षा को बंद कर दिया, तो मुद्दा थोड़ी देर के लिए बंद हो गया लेकिन बाद में वापस आ गया (जैसा कि मैंने परीक्षण लिखने पर रखा था)।
मैंने सभी एनपीएम पैकेज और बॉवर घटकों को नवीनतम संस्करण में अपडेट किया है, लेकिन इसमें अनंत लूपिंग नहीं बदली है।
अब तक मैं पूरी तरह से विचारों से बाहर हूं। क्या किसी ने कभी इस तरह के अजीब व्यवहार और कंसोल आउटपुट का सामना किया?
वही बात आज हमारे साथ हो रही है - मुझे आश्चर्य है कि क्या कर्म/चमेली/कुछ अन्य पर निर्भरता है जो इसका कारण बन सकती है? –
संयोग होना चाहिए कि एक ही समय में हमारे पास एक ही समस्या थी! हमने यह कैसे तय किया है इसके लिए नीचे मेरा उत्तर देखें। –