2009-07-10 16 views
8

जावास्क्रिप्ट के लिए कुछ परीक्षण-ढांचे मौजूद हैं, जैसे JSUnit या js-test-driver। वे ठीक हैं, लेकिन वे एक ब्राउज़र में परीक्षण चलाते हैं। यह ठीक है, खासकर यह सत्यापित करने के लिए कि आपका वेबपैप विभिन्न ब्राउज़रों में चल रहा है। लेकिन निरंतर एकीकरण-सर्वर पर कोई विंडो-सिस्टम (और कोई ब्राउज़र नहीं) स्थापित है। तो ब्राउज़र के उपयोग के बिना परीक्षण चलाने का कोई तरीका है? सबसे अच्छा मौजूदा ढांचे में से एक का उपयोग करना होगा, ताकि डेवलपर स्थानीय रूप से अपने ब्राउज़र में परीक्षण चला सकें और निरंतर-एकीकरण-प्रणाली उन्हें ब्राउज़र रहित चला सके।जावास्क्रिप्ट के लिए कौन सा परीक्षण-ढांचा ब्राउज़र के बिना परीक्षण का समर्थन करता है?

+2

यह आपके प्रश्न का उत्तर नहीं है, लेकिन मैं एक वास्तविक ब्राउज़र में चीज़ का परीक्षण करने का सुझाव दूंगा। अंत उपयोगकर्ताओं को यह दिखाई देगा, इसलिए इसका परीक्षण किया जाना चाहिए। सीआई किस पर स्थापित है? –

+1

सीआई लिनक्स पर स्थापित है, लेकिन एक्स के बिना। तो ब्राउज़र में परीक्षण सीआई-सर्वर पर संभव नहीं है। ब्राउज़र में यह डेवलपर्स द्वारा किसी भी तरह से परीक्षण किया जाएगा, लेकिन मैं सीआई को भी परीक्षण जोड़ना चाहता हूं। – Mnementh

+0

कैसे phantomjs के बारे में? – ShrekOverflow

उत्तर

1

jsTest रन कमांड लाइन या ग्रहण प्लगइन के रूप में चलाया जा सकता है।

हालांकि, सावधान रहें, यदि आपको एकाधिक ब्राउज़र का समर्थन करने की आवश्यकता है तो आपको इस तरह के टूल का उपयोग करके 100% कोड कवरेज नहीं मिलेगा। प्रत्येक ब्राउज़र जावास्क्रिप्ट को अलग-अलग लागू करता है (यानी आईई)। इसलिए, अपनी जावास्क्रिप्ट का पूर्ण परीक्षण करने का एकमात्र तरीका उन सभी ब्राउज़रों में परीक्षण चलाने के लिए है जिन्हें आप समर्थन करते हैं।

+0

मुझे यकीन नहीं है कि आप क्यों कहते हैं कि आपको 100% कवरेज नहीं मिल सकता है। कवरेज का मतलब है कि कोड निष्पादित हो जाता है। जिस समस्या को आप इंगित करते हैं (क्रॉस-ब्राउज़र संगतता) यह है कि एक ही कोड अलग निष्पादन वातावरण में अलग-अलग चीजों का अर्थ हो सकता है (और करता है)। इसका निहितार्थ यह है कि यदि आपके पास फ़ायरफ़ॉक्स में 100% कवरेज है, तो यह आपको IE में कोड के व्यवहार के बारे में जानना नहीं चाहता है। आप 100% ज्ञान प्राप्त किए बिना 100% कवरेज प्राप्त कर सकते हैं।(और सभी ब्राउज़रों में भी 100% कवरेज 100% ज्ञान के समान नहीं है, लेकिन यह एक अलग मुद्दा है।) –

+0

यह 5 साल पहले था। फिर वेब विकास वापस ब्राउज़र-निर्भर विभाजन से भरा था क्योंकि एपीआई बहुत अलग थे। यदि आपने फ़ायरफ़ॉक्स में अपना परीक्षण चलाया है, तो कुछ कमांड लाइन रनर इत्यादि। आप किसी अन्य ब्राउज़र को संभालने वाली दूसरी शाखा में कोड के _any_ निष्पादित नहीं कर सके। चूंकि आप अपनी शाखाओं को अवांछित छोड़ रहे हैं, इसलिए आप 100% कोड कवरेज का दावा नहीं कर सकते हैं। आजकल, परिदृश्य बहुत अलग है। मैं ईमानदारी से याद नहीं कर सकता कि आखिरी बार मुझे विभिन्न ब्राउज़रों के लिए अलग-अलग चीजें करना पड़ा। – geowa4

0

मेरा मानना ​​है कि कैनू वेबटेस्ट ब्राउज़र के बिना चलाया जा सकता है। यह मूल रूप से एक दृश्यपटल-परीक्षण ढांचे है, लेकिन जावास्क्रिप्ट का परीक्षण करने के साथ ही इस्तेमाल किया जा सकता:

http://webtest.canoo.com/

0

JSpec जैसे कई यूआई-परीक्षण ढांचे द्वारा किया जाता है हो सकता है ब्राउज़र के बिना दौड़ें (राइनो का उपयोग करके)। लेकिन ब्राउज़र में भी चलने का समर्थन करता है।

http://visionmedia.github.com/jspec/

यह भी एक अच्छा विनिर्देश शैली वाक्य रचना प्रदान करता है:

describe 'ShoppingCart' 
    describe 'addProduct' 
    it 'should add a product' 
     cart.addProduct('cookie') 
     cart.addProduct('icecream') 
     cart.should.have 2, 'products' 
    end 
    end 
end 

एक ब्राउज़र के बाहर अपने सभी इकाई परीक्षण चलाने में रखकर आप भी एचटीएमएल से अपने तर्क की जुदाई सुनिश्चित का लाभ प्राप्त/प्रस्तुति परत (वेब ​​ऐप्स के लिए उपयोगी, संभवतः छोटी स्क्रिप्ट के लिए ओवरकिल)।

+0

जेएसपीसी प्रोजेक्ट मर चुका है और, उनकी साइट पूरी तरह से गायब होने से पहले, इसके बजाय जैस्मीन की सिफारिश की गई। http://stackoverflow.com/questions/3912312/jspec-no-longer-supported –

0

जैस्मीन नोड.जे.एस. के अंदर काफी खुशी से भागेंगे।

1

निम्न लेख पर एक नज़र डालें:

इसके अलावा, हम एक jsTestDriver सर्वर वेब ब्राउज़र के एक जोड़े के साथ चल रहा है (दूरस्थ कंसोल धावक के रूप में) जेनकींस के लिए संसाधन के रूप में, ताकि आप वेब ब्राउज़र में परीक्षण के साथ सीआई प्राप्त कर सकें।

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

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