2011-03-20 6 views
36

node.js module list पर सूचीबद्ध 30+ परीक्षण ढांचे हैं ...node.js के लिए यूनिट परीक्षण ढांचा जो विशेष रूप से परीक्षण एसिंक कोड का समर्थन करता है?

कौन सा ढांचा सबसे लोकप्रिय हैं? और उनके पेशेवर और विपक्ष क्या हैं?

मैं एक रूपरेखा (शायद सबसे अन्य नोड परियोजनाओं की तरह) async कॉलबैक का एक बहुत है कि कोड की इकाई परीक्षण का समर्थन करता है कि के लिए देख रहा हूँ। इसके अलावा, मैं जटिल से थोड़ा सरल और छोटा कुछ ढूंढ रहा हूं।

अब तक मैं देखा है:

  • Nodeunit सीधा है और इसकी सूचना देने के परिभाषित कितने दावे आप कहा जा करने की उम्मीद है और जब एक परीक्षण किया जाता है द्वारा async कोड का समर्थन करता है।
  • Vowsjs दिलचस्प लग रहा है। आपको परीक्षणों की अच्छी तरह से संरचना करने की अनुमति देता है और कई उन्नत सुविधाओं के साथ आता है। सुनिश्चित नहीं है कि ये सुविधाएं वास्तव में उपयोगी हैं, या यदि वे आपके रास्ते में खड़े हैं?

उत्तर

35

expresso और vows सबसे लोकप्रिय विकल्प हैं। यद्यपि वहां कई अच्छे विकल्प हैं। अद्यतन: Nov./2011 के रूप में, Mochaexpresso भंडार में Readme.md के अनुसार, expresso का उत्तराधिकारी है। बीडीडी-शैली के दावों की अनुमति देने के लिए should.js अक्सर Mocha के साथ उपयोग किया जाता है।

जो भी आप चुनते हैं, मैं gently का उपयोग करना चाहिये कोर या तीसरे पक्ष के मॉड्यूल ठूंठ।

मैं उपयोग/testosterone, एक छोटे से परीक्षण ढांचे है कि सीरियल पर परीक्षण चलाता है ताकि आप धीरे दुरुपयोग कर सकते हैं बनाए रखें। हालांकि इसका उपयोग करने वाले बहुत से लोग नहीं हैं।

2

QUnit एक परीक्षण ढांचे के रूप में सरल हो सकता है, और असीमित कॉल का समर्थन कर सकता है। यह JQuery के लिए परीक्षण उपकरण है, इसलिए आप सुनिश्चित कर सकते हैं कि यह अत्यधिक समर्थित है और अच्छी तरह से काम करता है।

आप Sinon के साथ एकीकरण पर विचार कर सकते हैं, जो एक मॉकिंग फ्रेमवर्क है, जो विशेष रूप से आपको नकली एसिंक्रोनस घटनाओं की अनुमति देता है। This tutorial और वहां जुड़े ट्यूटोरियल के अन्य हिस्सों से पता चलता है कि सिंकॉन का उपयोग एसिंक्रोनस कोड का परीक्षण करने के लिए कैसे किया जाए। यह ब्राउज़र पर है, लेकिन आप इसे नोड अनुप्रयोगों का परीक्षण करने के लिए अनुकूलित करने में सक्षम होना चाहिए।

+3

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

9

मार्च 2012 से हम Nodeunit का उपयोग कर रहे हैं और वापस नहीं देखा है। यह सरल और काम करने में आसान है, यह आपको मॉड्यूल-स्तर और क्लास-स्तरीय फिक्स्चर (सेटअप/टियरडाउन) के बीच चुनने देता है, इसे अंतर्निहित दावों का उचित सेट मिल गया है, और इसके कमांड लाइन टूल बहुत लचीले हैं। इसे nodemon के साथ संयोजन करने का भी प्रयास करें।

हमने संक्षेप में एक शपथ देखी लेकिन परीक्षणों को परिभाषित करने के लिए एक नया अजीब वाक्यविन्यास नहीं चाहता था। आपको केवल कथन, फिक्स्चर, और एक सभ्य दोहन की आवश्यकता है, और नोडुनिट बिल को पूरी तरह से फिट करता है।

2

मैंने अभी तक इसका उपयोग नहीं किया है, लेकिन Pivotal लैब्स से Jasmine के बारे में क्या है?

मैं विशेष रूप से OKJS लिखा था क्योंकि QUnit तो बेकार अतुल्यकालिक था: मेरे अपने पुस्तकालय के लिए

+0

ऐसा लगता है जैसे यह फिट होगा! – FutuToad

+0

मैं हाल ही में यूनिट परीक्षण के लिए मोचा का उपयोग कर रहा हूं। –

+0

आप इसे बनाम जैस्मीन का उपयोग क्यों करते हैं? – FutuToad

0

माइनर प्लग, लेकिन अधिक महत्वपूर्ण बात मैं सिर्फ अन्य दोहन डेवलपर्स क्या जे एस में एक async परीक्षण की तरह दिखना चाहिए के बारे में सोचना चाहता हूँ। क्विनिट अपवाद (!) को पकड़ने में विफल रहता है, और गहराई का ट्रैक रखने के लिए एक हैकी स्टार्ट() की आवश्यकता होती है।

कई परीक्षण ढांचे में टाइमआउट का परीक्षण करने और अपवादों को पकड़ने के लिए एक सरल कॉलबैक रैपर होने में विफल रहता है। मुझे यकीन नहीं है कि क्यों - असंबद्ध विकास के दिल में कॉलबैक हैं। =/

setTimeout(function() { 
    ok(true, "Passed and ready to resume!"); 
    start(); 
    }, 1000); 

OKJS घटना श्रोताओं में अपवाद पकड़ता है, और एक interal मृत-आदमी के ट्रिगर के साथ बकाया async अनुरोध जो परीक्षण असफल हो सकता है का ट्रैक रखता है।

setTimeout(unit.callback("test callback is fired"), 500); 
    setTimeout(unit.callback("callback fired, with subtests", function() { 
     unit.assert("in callback, true === true", true,true); 
    }), 500); 

एंटरप्राइज़ समाधानों से इस शैली का समर्थन देखना अच्छा लगेगा। अन्य सुविधाओं में से कुछ ओकेजेएस वकील परीक्षण ब्लॉक हैं जो श्रृंखला (नुस्खा शैली) में निष्पादित होते हैं, लेकिन घटनाओं के समाधान के लिए ब्लॉक के बीच प्रतीक्षा करें।

0

test-studio एक एनपीएम पैकेज है जो इकाई परीक्षण के लिए एक शक्तिशाली, वेब आधारित फ्रंट एंड प्रदान करता है। यह वर्तमान में केवल मोचा का समर्थन करता है और अलग-अलग परीक्षणों में व्यक्तिगत या परीक्षण समूहों और कदम नोड-इंस्पेक्टर को निष्पादित करने जैसी चीजें प्रदान करता है।

इसके बारे में और पढ़ें here

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