2012-10-22 21 views
8

मैं टेस्टकुलर के साथ (एचटीएमएल) फिक्स्चर कैसे एकीकृत करूं? क्या डीओएम आधारित परीक्षण करने के लिए कोई सिफारिश है या क्या यह एक विरोधी पैटर्न है?testacularjs के साथ एचटीएमएल को एकीकृत करते समय त्रुटि

उद्देश्य: मैं एक कस्टम मॉड्यूल का परीक्षण करने की कोशिश कर रहा हूं जो डोम पेड़ को पार करता है और एक नई डेटा संरचना बनाता है। डीओएम पेड़ गतिशील हो सकता है (जैसे एचटीएमएल/मार्कडाउन एडिटर की सामग्री) और इसलिए अंत तक परीक्षण के अंत के लिए एक अच्छा उम्मीदवार नहीं है

समस्या: मैं इस डोम परीक्षण के लिए जैस्मीन-jquery का उपयोग करने की कोशिश कर रहा हूं और मेरे टेस्टकुलर में .conf.js, मेरे पास अनुभाग में HTML फ़ाइलों को लोड करने की अनुमति देने के लिए अनुभाग है।

 

// list of files/patterns to load in the browser 
files = [ 
    JASMINE, 
    JASMINE_ADAPTER, 
    'test/spec/**/*.js', 
    'test/fixtures/*.html' **/* Needs to be included here to be served */** 
]; 
 
कमांड लाइन पर अपने परीक्षण धावक में

हालांकि, जब मैं एचटीएमएल स्थिरता ड्रॉप (यहां तक ​​कि इससे पहले कि मैं किसी भी चमेली-jQuery कोड स्थिरता लोड करने के लिए लिख) मैं निम्न त्रुटि संदेश मिलता है:

 

Chrome 22.0 **ERROR** 
    Uncaught SyntaxError: Unexpected token < at /Users/myUser/myProject/test/fixtures/fixture_template.html:1 Chrome 22.0: Executed 0 of 0 ERROR (0.143 secs/0 secs) 
 

संपादित करें: एक ही प्रश्न पूछने का एक और तरीका: मैं एचटीएमएल की सेवा करने के लिए टेस्टकुलर कैसे प्राप्त करूं और परीक्षण धावक को उड़ाऊं?

मैं ऊपर उल्लेख किया है, मैं 'परीक्षण/फिक्स्चर/*। Html "config में लेकिन परीक्षण धावक अभी चल रही है शामिल करने के लिए की जरूरत है।

उत्तर

9
testacularjs की

वर्तमान संस्करण इसका समर्थन नहीं कर सकते हैं। हालांकि, testacularjs (Vojta जिना) के लेखक, सुझाव दिया मैं एक प्रॉक्सी समाधान का उपयोग एक अलग वेब सर्वर के माध्यम से एचटीएमएल की सेवा के द्वारा इस समाधान करने के लिए। उन उत्सुक के लिए, यहाँ अंत चरणों समाप्त करने के लिए इस काम के मिल रहे हैं।

  • पहले निम्न

    जैसे कमांड चलाकर वेबसर्वर चलाएं

    अजगर -m SimpleHTTPServer 3502 &

  • उचित स्थान में अपनी स्थिरता फ़ाइल (फ़ाइलें) ड्रॉप। मेरा परीक्षण/जुड़नार था/first.html

    अब आप यात्रा करने के लिए सक्षम होना चाहिए [http: // localhost: 3502/परीक्षण/फिक्स्चर/first.html] और मार्कअप देखते हैं जब आप पृष्ठ स्रोत का निरीक्षण

  • संपादित testacular.conf.js config ब्लॉक

    
    proxies = { 
    '/fixtures' : 'http://localhost:3502/' 
    }; 
    
  • संपादित अपने चमेली इकाई परीक्षण निम्नलिखित

    की तरह एक ब्लॉक में जोड़ने के लिए

अब आप

6

loadfixture/readfixture करने की स्थिति में होना चाहिए http://testacular.github.com/0.6.0/config/files.html पर कहा गया है, संस्करण 0.5.2 के बाद से आप नया विन्यास सिंटैक्स का उपयोग कर सकते हैं:

files = [ 
    JASMINE, 
    JASMINE_ADAPTER, 
    'test/spec/**/*.js', 
    { 
    pattern: 'test/fixtures/*.html', 
    watched: true, 
    included: false, 
    served: true 
    } 
]; 

मैं बस की कोशिश की यह और यह मेरे लिए ठीक काम करता है।

+0

अच्छा, इसके लिए इंतजार कर रहा था! – monkeyboy

+0

+1, लेकिन कम से कम हाल के संस्करणों में आपको शामिल प्रीकंप्रेसर की डिफ़ॉल्ट सूची को संपादित करने की भी आवश्यकता है ताकि आप html2js को शामिल न करें। – AJJ