javascript - टीडीडी के लिए जावास्क्रिप्ट यूनिट परीक्षण उपकरण




unit-testing tdd (9)

BusterJS

टेस्ट संचालित जावास्क्रिप्ट विकास और सिनन फ्रेमवर्क के लेखक क्रिश्चियन जोहान्सन से Buster.js भी हैं। साइट से:

Buster.JS एक नया जावास्क्रिप्ट परीक्षण ढांचा है। यह वास्तविक ब्राउज़र में परीक्षण रन स्वचालित करने (JsTestDriver सोचें), साथ ही Node.js परीक्षण द्वारा ब्राउज़र परीक्षण करता है।

मैंने कई जावास्क्रिप्ट यूनिट परीक्षणों और परीक्षण उपकरणों को देखा और माना है, लेकिन पूरी तरह से टीडीडी अनुपालन के लिए उपयुक्त विकल्प खोजने में असमर्थ रहे हैं। तो, क्या एक जावास्क्रिप्ट यूनिट परीक्षण उपकरण है जो पूरी तरह से टीडीडी अनुपालन है?


कर्म या Protractor

कर्म एक जावास्क्रिप्ट टेस्ट-धावक है जो नोड.जेएस के साथ बनाया गया है और यूनिट परीक्षण के लिए है।

प्रोटैक्टर एंड-टू-एंड परीक्षण के लिए है और परीक्षण चलाने के लिए सेलेनियम वेब ड्राइवर का उपयोग करता है।

दोनों अंगुलर टीम द्वारा किए गए हैं। आप किसी भी सम्मिलन-पुस्तकालय का उपयोग कर सकते हैं जिसे आप चाहते हैं।

स्क्रीनकास्ट: कर्म शुरू करना

संबंधित :

पेशेवर :

  • विन / ओएस एक्स / लिनक्स के साथ संगत node.js का उपयोग करता है
  • फ़ैंटॉमजेएस के साथ ब्राउज़र या हेडलेस से परीक्षण चलाएं
  • एक साथ कई ग्राहकों पर चलाएं
  • ब्राउज़र लॉन्च करने, कैप्चर करने और स्वचालित रूप से बंद करने का विकल्प
  • विकास कंप्यूटर या अलग से सर्वर / क्लाइंट चलाने के लिए विकल्प
  • कमांड लाइन से परीक्षण चलाएं (चींटी / मेवेन में एकीकृत किया जा सकता है)
  • परीक्षण xUnit या बीडीडी शैली लिखें
  • एकाधिक जावास्क्रिप्ट परीक्षण ढांचे का समर्थन करता है
  • सहेजने पर ऑटो-रन परीक्षण
  • प्रॉक्सी क्रॉस-डोमेन का अनुरोध करता है
  • अनुकूलित करने के लिए संभव है:
    • अन्य परीक्षण-ढांचे को लपेटने के लिए इसे बढ़ाएं (जैस्मीन, मोचा, क्विनीट अंतर्निर्मित)
    • आपके अपने दावे / खंड
    • संवाददाताओं से
    • ब्राउज़र लॉन्चर्स
  • वेबस्टॉर्म के लिए प्लगइन
  • नेटबीन्स आईडीई द्वारा समर्थित

विपक्ष :

  • नोडजेएस (यानी बैकएंड) परीक्षण का समर्थन नहीं करता है
  • ग्रहण के लिए कोई प्लगइन नहीं (अभी तक)
  • पिछले परीक्षण परिणामों का कोई इतिहास नहीं

mocha.js

मैं mocha.js की विशेषताओं, ताकत और कमजोरियों पर टिप्पणी करने के लिए पूरी तरह से अयोग्य हूं, लेकिन किसी ऐसे व्यक्ति द्वारा मुझे इसकी सिफारिश की गई थी जिसे मैं जेएस समुदाय में भरोसा करता हूं।

इसकी वेबसाइट द्वारा रिपोर्ट की गई सुविधाओं की सूची:

  • ब्राउज़र समर्थन
  • वादे सहित सरल async समर्थन
  • परीक्षण कवरेज रिपोर्टिंग
  • स्ट्रिंग diff समर्थन
  • परीक्षण चलाने के लिए जावास्क्रिप्ट # एपीआई
  • सीआई समर्थन आदि के लिए उचित निकास स्थिति आदि
  • गैर-ttys के लिए रंग का स्वतः पता लगाता है और अक्षम करता है
  • सही परीक्षण मामले में बेजोड़ अपवादों को मानचित्रित करता है
  • async परीक्षण टाइमआउट समर्थन
  • परीक्षण-विशिष्ट टाइमआउट्स
  • उगाना अधिसूचना समर्थन
  • परीक्षण अवधि रिपोर्ट करता है
  • धीमी परीक्षण पर प्रकाश डाला गया
  • फ़ाइल वॉचर समर्थन
  • वैश्विक परिवर्तनीय रिसाव का पता लगाने
  • वैकल्पिक रूप से ऐसे परीक्षण चलाते हैं जो regexp से मेल खाते हैं
  • सक्रिय लूप के साथ "फांसी" को रोकने के लिए ऑटो-एक्जिट
  • आसानी से मेटा-जेनरेट सूट और टेस्ट-केस
  • mocha.opts फ़ाइल समर्थन
  • परीक्षण निष्पादन फ़िल्टर करने के लिए क्लिक करने योग्य सूट शीर्षक
  • नोड डीबगर समर्थन
  • करने के लिए कई कॉल का पता लगाता है ()
  • आप चाहते हैं कि किसी भी दावा पुस्तकालय का उपयोग करें
  • एक्स्टेंसिबल रिपोर्टिंग, 9 + संवाददाताओं के साथ बंडल
  • एक्स्टेंसिबल टेस्ट डीएसएल या "इंटरफेस"
  • प्रत्येक हुक के बाद, प्रत्येक से पहले, पहले
  • मनमाने ढंग से पारदर्शी समर्थन (कॉफी-स्क्रिप्ट आदि)
  • टेक्स्टमैट बंडल

yolpo

यह अब मौजूद नहीं है, इसके बजाय sequential.js पर रीडायरेक्ट करता है

Yolpo जावास्क्रिप्ट के निष्पादन को देखने के लिए एक उपकरण है। जावास्क्रिप्ट एपीआई डेवलपर्स को उनके एपीआई दिखाने और बताने के लिए उनके उपयोग के मामलों को लिखने के लिए प्रोत्साहित किया जाता है। ऐसे उपयोग के मामले प्रतिगमन परीक्षण के आधार बनते हैं।

AVA

AVA

ES2015 के लिए अंतर्निहित समर्थन के साथ भविष्य परीक्षण परीक्षक। यद्यपि जावास्क्रिप्ट एकल-थ्रेडेड है, फिर भी नोड.जेएस में आईओ इसकी एसिंक प्रकृति के कारण समानांतर में हो सकता है। एवीए इसका लाभ उठाता है और आपके परीक्षणों को एक साथ चलाता है, जो आईओ भारी परीक्षणों के लिए विशेष रूप से फायदेमंद है। इसके अलावा, परीक्षण फ़ाइलों को अलग-अलग प्रक्रियाओं के समानांतर में चलाया जाता है, जिससे आप प्रत्येक परीक्षण फ़ाइल के लिए बेहतर प्रदर्शन और एक अलग वातावरण भी प्रदान करते हैं।

  • न्यूनतम और तेज़
  • सरल परीक्षण वाक्यविन्यास
  • एक साथ परीक्षण चलाता है
  • परमाणु परीक्षण लिखने के लिए मजबूर करता है
  • कोई अंतर्निहित ग्लोबल्स नहीं
  • प्रत्येक परीक्षण फ़ाइल के लिए पृथक वातावरण
  • ES2015 में अपने परीक्षण लिखें
  • वादा समर्थन
  • जनरेटर फ़ंक्शन समर्थन
  • Async फ़ंक्शन समर्थन
  • अवलोकन समर्थन
  • उन्नत asserts
  • वैकल्पिक टीएपी ओ यूटपुट
  • साफ ढेर निशान

Buster.js

Node.js. के साथ बनाया गया एक जावास्क्रिप्ट परीक्षण धावक बहुत मॉड्यूलर और लचीला। यह अपने स्वयं के दावे पुस्तकालय के साथ आता है, लेकिन यदि आप चाहें तो आप अपना खुद का जोड़ सकते हैं। दावा पुस्तकालय decoupled है, तो आप इसे अन्य परीक्षण धावकों के साथ भी उपयोग कर सकते हैं। assert(!...) या expect(...).not... करने के बजाय assert(!...) expect(...).not... , यह refute(...) का उपयोग करता है जो एक अच्छा मोड़ imho है।

एक ब्राउज़र जावास्क्रिप्ट परीक्षण टूलकिट। यह ब्राउजर ऑटोमेशन के साथ ब्राउज़र परीक्षण करता है (जेएसटेस्ट ड्रायवर सोचें), कुनीट स्टाइल स्टेटिक एचटीएमएल पेज परीक्षण, हेडलेस ब्राउजर में परीक्षण (प्रेतोज़, जेएसडम, ...), आदि। अवलोकन पर एक नज़र डालें !

एक नोड.जेएस परीक्षण टूलकिट। आपको एक ही टेस्ट केस लाइब्रेरी, दावा पुस्तकालय इत्यादि मिलती है। यह हाइब्रिड ब्राउज़र और नोड.जेएस कोड के लिए भी बहुत अच्छा है। Buster.JS के साथ अपना टेस्ट केस लिखें और इसे Node.js और वास्तविक ब्राउज़र में चलाएं।

स्क्रीनकास्ट: Buster.js प्रारंभ करना (2:45)

पेशेवर :

  • विन / ओएस एक्स / लिनक्स के साथ संगत node.js का उपयोग करता है
  • फ़ैंटॉमजेएस (जल्द ही) के साथ ब्राउज़र या हेडलेस से परीक्षण चलाएं
  • एक साथ कई ग्राहकों पर चलाएं
  • नोडजेएस परीक्षण का समर्थन करता है
  • विकास कंप्यूटर पर सर्वर / क्लाइंट चलाने की आवश्यकता नहीं है (आईई के लिए कोई ज़रूरत नहीं है)
  • कमांड लाइन से परीक्षण चलाएं (चींटी / मेवेन में एकीकृत किया जा सकता है)
  • परीक्षण xUnit या बीडीडी शैली लिखें
  • एकाधिक जावास्क्रिप्ट परीक्षण ढांचे का समर्थन करता है
  • उन्हें टिप्पणी करने के बजाय परीक्षणों को डिफर करें
  • SinonJS में बनाया गया
  • सहेजने पर ऑटो-रन परीक्षण
  • प्रॉक्सी क्रॉस-डोमेन का अनुरोध करता है
  • अनुकूलित करने के लिए संभव है:
    • अन्य परीक्षण-ढांचे को लपेटने के लिए इसे बढ़ाएं (जेएसटेस्ट ड्रायवर में निर्मित)
    • आपके अपने दावे / खंड
    • रिपोर्टर (xunit एक्सएमएल, पारंपरिक बिंदु, विनिर्देश, टैप, टीमसिटी और अधिक निर्मित)
    • ब्राउज़र-परीक्षण चलाने के लिए उपयोग किए जाने वाले HTML को कस्टमाइज़ / बदलें
  • टेक्स्टमैट और Emacs एकीकरण

विपक्ष :

  • बीटा में ठोकरें तो छोटी हो सकती है
  • ग्रहण / IntelliJ के लिए कोई प्लगइन (अभी तक)
  • टेस्टस्वार्म * जैसे ओएस / ब्राउज़र / संस्करण द्वारा परिणाम समूहित नहीं करता है। हालांकि, यह परीक्षण परिणामों में ब्राउज़र नाम और संस्करण मुद्रित करता है।
  • पिछले परीक्षण परिणामों का कोई इतिहास नहीं जैसे टेस्टस्वार्म *
  • मई 2014 तक विंडोज़ पर पूरी तरह से काम नहीं करता है

* TestSwarm भी एक निरंतर एकीकरण सर्वर है, जबकि आपको Buster.js के लिए एक अलग सीआई सर्वर की आवश्यकता है। हालांकि, एक्सएमएल एक्सएमएल रिपोर्ट आउटपुट करता है, इसलिए इसे Hudson , Bamboo या अन्य सीआई सर्वरों के साथ एकीकृत करना आसान होना चाहिए।

TestSwarm

https://github.com/jquery/testswarm

टेस्टस्वार्म आधिकारिक तौर पर सक्रिय विकास के तहत नहीं है जैसा कि उनके गिटहब वेबपृष्ठ पर बताया गया है। वे कर्म, ब्राउजरस्टैक-धावक, या इंटर्न की सलाह देते हैं।

Jasmine

यह एक क्लाइंट-साइड टेस्ट-रनर है जो रूबी या रुबी से रेलवे पर परिचित डेवलपर्स को रुचि दे सकता है। सिंटैक्स RSpec पर आधारित है जिसका उपयोग रेल परियोजनाओं में परीक्षण के लिए किया जाता है।

जैस्मीन आपके जावास्क्रिप्ट कोड का परीक्षण करने के लिए एक व्यवहार संचालित विकास ढांचा है। यह किसी भी अन्य जावास्क्रिप्ट ढांचे पर निर्भर नहीं है। इसे एक डोम की आवश्यकता नहीं है।

यदि आपके पास इस परीक्षण-धावक के साथ अनुभव है, तो कृपया अधिक जानकारी के साथ योगदान दें :)

परियोजना घर: Jasmine

QUnit

जितना संभव हो सके डेवलपर को अधिक सुविधा प्रदान करते हुए QUNit ब्राउज़र में जावास्क्रिप्ट का परीक्षण करने पर केंद्रित है। साइट से ब्लर्ब:

QUnit एक शक्तिशाली, उपयोग में आसान जावास्क्रिप्ट इकाई परीक्षण सूट है। इसका उपयोग jQuery, jQuery UI और jQuery मोबाइल प्रोजेक्ट द्वारा किया जाता है और किसी भी जेनेरिक जावास्क्रिप्ट कोड का परीक्षण करने में सक्षम है

QUNit टेस्टस्वार्म (ऊपर) के साथ कुछ इतिहास साझा करता है:

QUNit मूल रूप से जॉन रेजिग द्वारा jQuery के हिस्से के रूप में विकसित किया गया था। 2008 में इसे अपना घर, नाम और एपीआई दस्तावेज मिला, जिससे दूसरों को अपने यूनिट परीक्षण के लिए इसका इस्तेमाल करने की अनुमति मिल गई। उस समय यह अभी भी jQuery पर निर्भर था। 200 9 में एक पुनर्लेखन ने तय किया कि अब क्विनीट पूरी तरह से स्टैंडअलोन चलाता है। क्विनीट के दावे के तरीके कॉमनजेएस यूनिट परीक्षण विनिर्देश का पालन करते हैं, जो कि क्विनीट से प्रभावित कुछ डिग्री थी।

परियोजना घर: QUnit

सिनोन

टेस्ट-संचालित जावास्क्रिप्ट विकास के लेखक क्रिश्चियन जोहान्सन द्वारा sinon.js एक और महान उपकरण है। सर्वश्रेष्ठ द्वारा वर्णित सर्वश्रेष्ठ:

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

नजरबंद

आंतरिक वेबसाइट इस सूची में अन्य परीक्षण ढांचे के लिए प्रत्यक्ष सुविधा तुलना प्रदान करती है। यह किसी अन्य जावास्क्रिप्ट-आधारित परीक्षण प्रणाली की तुलना में बॉक्स से अधिक सुविधाएं प्रदान करता है।


गूगल-js परीक्षण:

Google द्वारा जारी किया गया जावास्क्रिप्ट परीक्षण ढांचा: https://github.com/google/gjstest

  • एक ब्राउज़र चलाने के बिना, अत्यधिक तेज़ परीक्षण स्टार्टअप और निष्पादन समय।
  • गुजरने और असफल परीक्षण दोनों के मामले में स्वच्छ, पठनीय आउटपुट।
  • एक ब्राउज़र-आधारित परीक्षण धावक जिसे जेएस बदलते समय रीफ्रेश किया जा सकता है।
  • शैली और अर्थशास्त्र जो सी ++ के लिए Google टेस्ट जैसा दिखता है।
  • एक अंतर्निहित $verifyAll फ्रेमवर्क जिसमें Google C ++ मॉकिंग फ्रेमवर्क के आधार पर शैली और अर्थशास्त्र के साथ न्यूनतम बॉयलरप्लेट कोड (जैसे कोई $tearDown या $verifyAll ) की आवश्यकता होती है।

वर्तमान में विंडोज के लिए कोई द्विआधारी नहीं हैं


अब हम सभी एक साथ पावलोव और जेएसटीएस्टड्रिवर के साथ कुनीट का उपयोग कर रहे हैं। यह दृष्टिकोण हमारे लिए अच्छा काम करता है।

QUnit

Pavlov , source

jsTestDriver , source


आपको env.js पर एक नज़र रखना चाहिए। उदाहरण के लिए मेरा ब्लॉग देखें env.js. के साथ यूनिट परीक्षण कैसे लिखें


आपको यूनिट परीक्षण ढांचे में दिलचस्पी हो सकती है जो कि क्यूओक्सडू का हिस्सा है, जो खुले स्रोत आरआईए ढांचे को डोजो, एक्सटीजेएस इत्यादि के समान है, लेकिन काफी व्यापक उपकरण श्रृंखला के साथ।

testrunner के ऑनलाइन संस्करण का प्रयास करें। संकेत: ऊपरी बाईं ओर भूरे तीर को दबाएं (अधिक स्पष्ट किया जाना चाहिए)। यह एक "प्ले" बटन है जो चयनित परीक्षण चलाता है।

जेएस कक्षाओं के बारे में और जानने के लिए जो आपको अपने यूनिट परीक्षणों को परिभाषित करने देते हैं, ऑनलाइन एपीआई व्यूअर देखें

स्वचालित यूआई परीक्षण (सेलेनियम आरसी के आधार पर) के लिए, Simulator परियोजना देखें।


विकिपीडिया प्रविष्टि का जावास्क्रिप्ट खंड, यूनिट परीक्षण फ्रेमवर्क की सूची, उपलब्ध विकल्पों की एक सूची प्रदान करता है। यह इंगित करता है कि वे क्लाइंट-साइड, सर्वर-साइड, या दोनों काम करते हैं या नहीं।


हमने जावा जावास्क्रिप्ट कोड जेनरेटर एसटी-जेएस ( http://st-js.org ) में हमारे जावा में जुनीट एकीकरण जोड़ा। ढांचा परीक्षण कोड और यूनिट परीक्षण दोनों के लिए संबंधित जावास्क्रिप्ट को उत्पन्न करता है और कोड को विभिन्न ब्राउज़रों को भेजता है।

एक अलग सर्वर की आवश्यकता नहीं है क्योंकि इकाई परीक्षण धावक आवश्यक http पोर्ट खोलता है (और परीक्षण समाप्त होने के बाद इसे बंद कर देता है)। ढांचा जावा स्टैकट्रैस में हेरफेर करता है ताकि असफल आवेषण जुनीट ग्रहण प्लगइन द्वारा सही ढंग से प्रदर्शित किए जा सकें। JQuery और मॉकजैक्स के साथ यहां एक सरल उदाहरण है:

@RunWith(STJSTestDriverRunner.class)
@HTMLFixture("<div id='fortune'></div>")

@Scripts({ "classpath://jquery.js",
       "classpath://jquery.mockjax.js", "classpath://json2.js" })
public class MockjaxExampleTest {
  @Test
  public void myTest() {
    $.ajaxSetup($map("async", false));
    $.mockjax(new MockjaxOptions() {
      {
        url = "/restful/fortune";
        responseText = new Fortune() {
          {
            status = "success";
            fortune = "Are you a turtle?";
          }
        };
      }
    });

    $.getJSON("/restful/fortune", null, new Callback3<Fortune, String, JQueryXHR>() {
      @Override
      public void $invoke(Fortune response, String p2, JQueryXHR p3) {
        if (response.status.equals("success")) {
          $("#fortune").html("Your fortune is: " + response.fortune);
        } else {
          $("#fortune").html("Things do not look good, no fortune was told");
        }

      }
    });
    assertEquals("Your fortune is: Are you a turtle?", $("#fortune").html());
  }

  private static class Fortune {
    public String status;
    public String fortune;
  }
}

डोजो ऑब्जेक्ट हार्नेस (डीओएच) यूनिट टेस्ट फ्रेमवर्क पर एक नज़र डालें जो जावास्क्रिप्ट यूनिट परीक्षण के लिए बहुत अधिक ढांचा स्वतंत्र दोहन है और इसमें कोई डोजो निर्भरता नहीं है। Dojo Objective Harness का उपयोग कर यूनिट परीक्षण वेब 2.0 अनुप्रयोगों में इसका एक बहुत अच्छा विवरण है।

यदि आप यूआई परीक्षण (कई डेवलपर्स का एक doh.robot बिंदु) स्वचालित करना चाहते हैं - तो doh.robot (अस्थायी नीचे। अद्यतन: अन्य लिंक http://dojotoolkit.org/reference-guide/util/dohrobot.html ) और dijit.robotx (अस्थायी नीचे) । उत्तरार्द्ध एक स्वीकृति परीक्षण के लिए बनाया गया है। अद्यतन करें:

संदर्भित लेख बताते हैं कि उनका उपयोग कैसे करें, उपयोगकर्ता को माउस और / या कीबोर्ड का उपयोग करके अपने यूआई के साथ इंटरैक्ट करने का अनुकरण कैसे करें, और परीक्षण सत्र कैसे रिकॉर्ड करें, ताकि आप बाद में इसे "प्ले" कर सकें।






tdd