2012-12-06 37 views
11

में एक परीक्षण छोड़ना मुझे अभी qHint मिला, जो कि कुनीट में जेएसआईंट परीक्षण को एकीकृत करने के लिए एक विधि है ... लेकिन यह फ़ायरफ़ॉक्स को छोड़कर स्थानीय रूप से काम नहीं करता है (मुझे स्थानीयहोस्ट का मतलब नहीं है)।कुनिट

// do unit test if not local or local and running Firefox 
t = QUnit.isLocal; 
if (!t || (t && /Firefox/.test(navigator.userAgent))) { 
    jsHintTest('JSHint core check', 'js/myplugin.js'); 
} else { 
    test('JSHint core check (skipped)', function(){ 
     ok(true, 'check not done locally'); 
    }); 
} 

मैं बस चाहते हैं यह और भी स्पष्ट है कि एक परीक्षण किया गया था बनाने के लिए:

तो मैं एक "चेतावनी" या "नोटिस", नहीं एक परीक्षण की विफलता को जोड़ने के लिए, दिखा रहा है कि परीक्षण छोड़ दिया गया चाहता था छोड़ दिया, क्या यह संभव है?


अद्यतन: धन्यवाद उत्तर के लिए वनडे के लिए !, लेकिन मैं QUnit v1.11.0pre में कोड काम करने के लिए एक मामूली संशोधन करना था:

QUnit.testSkip = function(testName, callback) { 
    QUnit.test(testName + ' (SKIPPED)', function() { 
     if (typeof callback === "function") { 
      callback(); 
     } 
     var li = document.getElementById(QUnit.config.current.id); 
     QUnit.done(function() { 
      li.style.background = '#FFFF99'; 
     }); 
    }); 
}; 
testSkip = QUnit.testSkip; 
+3

QUnit एक [ 'छोड़()' विधि] (http://api.qunitjs.com/QUnit.skip/) v1.16 में जोड़ा गया है! – Mottie

उत्तर

17

मैं एक ही आवश्यकता थी और मैंने बस एक नया प्रकार test() परिभाषित किया जिसे मैंने testSkip() कहा।

यह परीक्षण विधि बस आपके परीक्षण फ़ंक्शन को प्रतिस्थापित करती है और नाम को <test name> (SKIPPED) में बदल देती है। उसके बाद परीक्षा QUNit द्वारा पारित माना जाता है।

यह इंगित करने के लिए कि यह एक छोड़ा गया परीक्षण है, मैंने HTML आउटपुट में पीले रंग में परीक्षण के रंग को बदलने के लिए प्रत्येक छोड़े गए परीक्षण के लिए QUnit.done पर कॉलबैक फ़ंक्शन जोड़ा। जब परीक्षण सूट किया जाता है तो ये कॉलबैक निष्पादित होते हैं। मूल्य को सीधे सेट करना काम नहीं करता है, क्योंकि QUnit रन के अंत में पास/असफल परीक्षणों के लिए शैलियों को लागू करता है।

QUnit.testSkip = function() { 
    QUnit.test(arguments[0] + ' (SKIPPED)', function() { 
     QUnit.expect(0);//dont expect any tests 
     var li = document.getElementById(QUnit.config.current.id); 
     QUnit.done(function() { 
      li.style.background = '#FFFF99'; 
     }); 
    }); 
}; 
testSkip = QUnit.testSkip; 

तो फिर तुम को छोड़ दिया परीक्षण के लिए testSkip() बजाय test() उपयोग कर सकते हैं।

अपने परीक्षण सूट के लिए नतीजा यह है कि जैसा दिखता है: Skipped tests in QUnit

+0

मुझे इसे QUnit v1.11.0pre (ऊपर पोस्ट) में काम करने के लिए थोड़ा सा संशोधन करना पड़ा। धन्यवाद! – Mottie

+1

आपको 'ठीक (सत्य) जोड़ने की आवश्यकता होगी; संशोधित परीक्षण के अंदर या QUnit v1.2 शिकायत करेगा कि परीक्षण में शून्य दावे हैं। –

+0

@ फ्रैंकोइसवंडर्स्पेन * * परीक्षण में शून्य आवेदक हैं, क्या 'अपेक्षा (0);' इसके बजाय उपयोग करना बेहतर नहीं होगा? – Potherca

2

जो कोई टिप्पणी नहीं से अधिक ग्लेज्ड हो सकता है के लिए, सवाल पर Mottie की टिप्पणी बताते हैं कि Qunit now has a skip() function। उस परीक्षण को छोड़ने के लिए skip() के साथ किसी भी कॉल को test() पर प्रतिस्थापित करें।