2011-03-28 9 views
9

के लिए कई अलग-अलग पूर्ण-पृष्ठ DOM नमूने की आवश्यकता है मेरे पास परीक्षण करने के लिए जावास्क्रिप्ट की एक छोटी राशि है, लेकिन यह पूरे पृष्ठ पर चलती है, उदाहरण के लिए, क्रमांकित आईडी जैसे तत्वों को "# t34" । अलग-अलग संभावित कॉन्फ़िगरेशन का परीक्षण करने के लिए मुझे विभिन्न पृष्ठों का एक मुट्ठी भर बनाने की आवश्यकता है। मैं देखता हूं कि मैं परीक्षण के लिए परीक्षण के लिए एक डोम पेड़ बनाने के लिए कुनिट-फ़िक्स्चर का उपयोग कर सकता हूं, लेकिन प्रत्येक पृष्ठ कॉन्फ़िगरेशन को एक पूर्ण पृष्ठ होना आवश्यक है, क्योंकि यह आईडी द्वारा तत्व पाएगा।मुझे अपने qUnit परीक्षण सूट

वहां विभिन्न qUnit ट्यूटोरियल सरल अंकगणितीय प्रदर्शन करने वाले शुद्ध जावास्क्रिप्ट कार्यों के सरल उदाहरणों पर केंद्रित प्रतीत होते हैं। मुझे कई अलग-अलग फाइलों का उपयोग करके वास्तविक परीक्षण सूट बनाने का तरीका समझने में मदद की ज़रूरत है।

अधिक जानकारी के साथ अपडेट किया गया: मैं coverage.py, पायथन कोड कवरेज टूल का मालिक हूं। यह एचटीएमएल रिपोर्ट जेनरेट करता है। इन रिपोर्टों में थोड़ी-थोड़ी अंतःक्रियाशीलता जोड़ने के लिए उन पर jQuery है। मैं काफी कुछ जोड़ रहा हूं, और परीक्षण को स्वचालित करना चाहता हूं। एचटीएमएल like this दिखता है। इसमें कोई सर्वर शामिल नहीं है, ये केवल स्थानीय निर्देशिका में लिखी गई फाइलें हैं, इसलिए AJAX के लिए कोई अवसर नहीं है। मैं कई अलग-अलग पेज कॉन्फ़िगरेशन के खिलाफ अपने परीक्षणों को चलाने के लिए चाहता हूं, ज्यादातर कोड के लाल और हरे-रंग वाले हिस्सों के किनारे के मामलों के साथ करना।

क्योंकि मेरा कोड $("#t123") (उदाहरण के लिए) के रूप में स्रोत लाइनों तक पहुंचता है, इसलिए मेरे पास एक ही डोम में HTML के एक से अधिक "पृष्ठ" नहीं हो सकते हैं, क्योंकि आईड्स संघर्ष करेंगे। मैं HTML के विभिन्न पृष्ठों के खिलाफ qUnit कैसे चला सकता हूं?

+0

थोड़ा और विशिष्ट जानकारी बहुत मददगार होगी। अब तक मेरा जवाब देखें कि मैं अब तक क्या कर सकता हूं। –

उत्तर

1

एक पूरा पृष्ठ और डोम परीक्षण के लिए, मैं सेलेनियम http://seleniumhq.org/ की तरह कुछ का प्रयोग करेंगे जब से तुम जे एस परीक्षण से कुछ परिचित हैं, आप भी http://www.phantomjs.org/ और http://zombie.labnotes.org/

इन के साथ

पर विचार हो सकता आप मूल रूप से एक Node.js सर्वर का उपयोग पृष्ठ लोड करने के लिए, जिसमें से आप node.js कमांडलाइन पर या स्क्रिप्टिंग के माध्यम से DOM तक पूर्ण पहुंच प्राप्त कर सकते हैं। इसके बारे में सोचें कमांडलाइन पर फायरबग स्क्रिप्टिंग (वैकल्पिक रूप से, एक फायरबग प्लगइन एक ही काम कर सकता है)। आप यह देखने के लिए आवेषण कर सकते हैं कि आपके आईडी तत्व मौजूद हैं, और क्लिक तत्वों को टॉगल करें और ऐसे।

(btw मैं Bocoup पर भी था: डी)

5

# qunit-स्थिरता स्वचालित रूप से, QUnit द्वारा रीसेट है जिसका अर्थ है आप प्रत्येक परीक्षा के द्वारा प्रयोग किया मार्कअप के साथ इसे भरने कर सकते हैं, या इसे खाली छोड़ और प्रत्येक परीक्षा है ऑटो आराम का लाभ उठाने के लिए इसे भरें। या बस प्रत्येक परीक्षण के बाद अलग-अलग रीसेट करने वाले मार्कअप का उपयोग करें।

आपने मॉड्यूल पद्धति का उपयोग करके प्रति-परीक्षण सेटअप और टियरडाउन refactor कर सकते हैं: http://docs.jquery.com/QUnit/module

इस मामले में यह एक अच्छा विकल्प की तरह लगता है में (तुल्यकालिक) प्रत्येक परीक्षा के लिए ajax अनुरोध का उपयोग करेंगे, पृष्ठ मार्कअप आप की जरूरत लोड हो रहा है # qunit- स्थिरता तत्व में। इस तरह आपको केवल कस्टम सेटअप की आवश्यकता है, क्योंकि QUNit बाद में रीसेट हो जाएगा।

भले ही आप फाइल सिस्टम से स्थानीय फाइलों के साथ काम कर रहे हों, तब तक जब तक वे आपकी testuite फ़ाइल के समान निर्देशिका में हों, तो आप उन्हें AJAX के माध्यम से लोड करने में सक्षम होना चाहिए।

यदि नहीं, तो स्थानीय सर्वर चलाने के लिए पर्याप्त आसान है, उदा। "निर्देशिका http://localhost:8080/ & & पायथन -एम SimpleHTTPServer 8080" के माध्यम से उस निर्देशिका में।

+0

örn, धन्यवाद, मैंने प्रश्न में कुछ और विवरण जोड़ा है। AJAX की सेवा करने के लिए सर्वर के बिना, क्या अलग-अलग HTML को स्थिरता में लोड करने के लिए कोई और विकल्प है? –

+0

पेज मार्कअप को # qunit-fixture में AJAX के माध्यम से लोड करने के विचार के लिए धन्यवाद। – YOMorales