2016-12-07 7 views
9

मैं जिसमें मैं किसी वेबपेजपरीक्षण में FuncUnit इकाई त्रुटियों को दबाने के लिए कैसे?

F.open("http://www.example.com"); 

हमारे पेज में एक ज्ञात समस्या है कि करीब 20 दिनों में लगभग एक वेबपेज भी कारण से लोड नहीं होता है का उपयोग कर खोलने के एक FuncUnit परीक्षण का मामला है। जब मैं लोड नहीं करता हूं तो मैं पुनः प्रयास करना चाहता हूं। लेकिन FuncUnit में त्रुटि को दबाने का कोई तरीका नहीं है अगर यह पृष्ठ लोड करने में विफल रहता है। Funcunit में त्रुटि संदेश दबाने का कोई तरीका है?

+0

मुझे आश्चर्य है कि आप एक दूरस्थ यूआरएल खोल सकते हैं। मैंने अभी 'एफ.ओपेन (' https://www.google.com ')' की कोशिश की और एक त्रुटि प्राप्त की। मुझे नहीं लगता कि 'एफ.ओपेन() 'दूरस्थ यूआरएल के लिए है क्योंकि आप किसी भी तरह से डीओएम के साथ बातचीत नहीं कर सकते हैं। आप वास्तव में क्या परीक्षण कर रहे हैं? –

+0

@Ryan यह वास्तव में दूरस्थ यूआरएल नहीं है। यह एक स्थानीयहोस्ट यूआरएल है। मैंने उदाहरण के रूप में example.com दिया है। – Sathish

+0

आह, ठीक है। ऐसा लगता है जैसे आपको एक समाधान मिला, हालांकि हैकी। क्या आप इस मुद्दे को पुन: उत्पन्न करने के लिए फ़ाइलों का एक न्यूनतम सेट प्रदान करने में सक्षम होंगे? यह एक बग की तरह लगता है जिसे तय करने की आवश्यकता है। –

उत्तर

0

आपके लिए यह काम कुछ नहीं कर सका?

module("test", { 
    setup: function() { 
    let startMeUp =() => F.open('http://www.example.com'); // unfortunately doesn't return a usable value 
    let checkCondition =() => { 
     // grab F(F.window), and check for a known element in the page 
     return elementFound; 
    }; 
    while(!checkCondition()) { 
     // element wasn't found, so let's try it again 
     startMeUp(); 
     // maybe set a wait here 
    } 
    } 
}); 
+0

यह काम नहीं करेगा। अगर एफ.ओपन नहीं खुलता है, तो यह परीक्षण में विफल रहता है। – Sathish

0
var url = "http://www.example.com" 
F.get(url, function(data){ 
    console.log("Made an ajax call to make sure that F.open is always second call"); 
}) 
// Wait for few seconds before making the actual F.open 
F.wait(5000,function(){ 
    F.open(url); 
}) 

जब भी F.open विफल रहता है (यानी दौरान 20 बार में से एक) मैंने देखा है कि दूसरे टेस्ट बिंदु F.open passes.However का उपयोग करता है मैं मामले में पहली बार फिर से F.open ऐसा नहीं कर सकते कोई काम नहीं करता है क्योंकि पृष्ठ लोड होने पर F.open त्रुटि को दबाने का कोई तरीका नहीं है।

तो मैं वास्तविक एफ.ओपेन बनाने से पहले हमेशा एक साधारण AJAX कॉल करता हूं। यह करने का यह सही तरीका नहीं है लेकिन यह हमारे लिए काम करता है क्योंकि हम वास्तव में परवाह नहीं करते हैं कि पृष्ठ हमारे परीक्षणों में पहला/दूसरा समय भार है या नहीं।

संबंधित मुद्दे