2011-09-19 24 views
5

मेरे पास जैस्मीन यूनिट परीक्षणों के बहुत सारे हैं, जो जावास्क्रिप्ट कोड के लिए यूनिट परीक्षण चला रहे हैं। वे डोम मैनिपुलेशन करने के लिए जैस्मीन-jQuery प्लगइन का उपयोग कर रहे हैं। वे loadFixture JasmineAdapter के साथ उपयोग, एचटीएमएलजावास्क्रिप्ट जेएसटेस्टड्राइवर जैस्मीन और जैस्मीन-jquery

मैं उन इकाई परीक्षण, JsTestDriver का उपयोग कर स्वचालित करने की कोशिश की की जुड़नार लोड करने के लिए, लेकिन सभी परीक्षणों को शामिल डोम-jQuery हेरफेर गुजर नहीं कर रहे हैं? क्या इसमें कुछ गड़बड़ है? क्या जेएसटीएस्ट ड्रायवर के साथ जैस्मीन-जेक्वायरी का उपयोग करने का कोई तरीका है?

उत्तर

9

मैं खुद का जवाब दूंगा क्योंकि मुझे इस समस्या का समाधान मिला है। समस्या जैस्मीन-जेक्रीरी एचटीएमएल स्थिरता लोड करने के लिए AJAX का उपयोग कर रही है, और यह एक रिश्तेदार पथ का उपयोग करता है, मानते हैं कि एचटीएमएल फिक्स्चर कहीं भी HTML कंटेनर के सापेक्ष स्थित है जो जैस्मीन परीक्षण चला रहा है। लेकिन चूंकि जेएसटेस्टड्राइवर अपने स्वयं के "स्पेस" के अंदर परीक्षण लोड कर रहा है, इसलिए हमें उस स्थान को बदलना होगा, जहां जैस्मीन-जेक्री उन HTML फिक्स्चर को देखता है, और जेएसटेस्ट ड्रायवर उन्हें लोड करता है।

तो समाधान इस प्रकार है:

JsTestDriver स्थिर html फ़ाइलें लोड करने की क्षमता है।

सेवा प्रदान करें:: कॉन्फ़िग फ़ाइल में निम्नलिखित जोड़ें - उदाहरण के लिए: सेवा प्रदान करें: - जुड़नार * .html

अब आप निम्न स्वरूप http के साथ उन लोगों तक पहुंच सकते हैं: स्थानीय होस्ट: 9876/परीक्षण/फिक्स्चर/... आप जैस्मीन-jquery को इस स्थान से जुड़ने के लिए जानता है।

और वॉयला, आपके परीक्षण फिर से काम करेंगे।

+0

मैं अपने फ़ोल्डर "चमेली" के अंदर मैं lib/चमेली कोर/jasmine.js है में चल मेरी जार फ़ाइल है। मेरे पास स्क्रिप्ट/test.js और फिक्स्चर/text.html भी हैं। मैंने सेवा की: - फिक्स्चर/*। एचटीएमएल लेकिन मुझे अभी भी 'फिक्स्चर'/फिक्स्चर 'और अन्य विविधताओं के साथ घबराहट त्रुटियां मिल रही हैं जब चमेली फिक्स्चर पाथ सेट करते हैं। कोई विचार? –

+0

आह मैंने मोनिका के जवाब को पढ़ा और देखा कि मुझे सामने/परीक्षण/रखना होगा। यह हल हो गया। स्थानीयहोस्ट उदाहरण मुझे थोड़ा फेंक रहा था क्योंकि मेरा सर्वर लोकलहोस्ट पर नहीं है। –

+0

यह जेएसटेस्ट ड्रायवर-1.3.4-ए.जर के लिए काम नहीं कर रहा है, लेकिन मैं विंडोज़ पर जेएसटेस्ट ड्रायवर-1.3.4.बी.जर के लिए करता हूं। – gotofritz

3

बस previous posting थोड़ा सा स्पष्ट करने के लिए।

अपने jsTestDriver कॉन्फ़िग फ़ाइल में यदि आपके पास:

की सेवा:

spec/fixtures/*_fixture.html 

उसके बाद, आप कौन सा मूल रूप से /test/ + जो भी मार्ग है

jasmine.getFixtures().fixturesPath = '/test/spec/fixtures'; 

के साथ अपने टेस्ट स्वीट ओवरराइड करने के लिए की जरूरत है आप अपने jsTestDriver कॉन्फ़िगरेशन फ़ाइल में सेवारत अनुभाग में घोषित करते हैं।

0

मैंने अभी एक ओपन सोर्स टूलकिट जारी किया है जो उम्मीद करता है कि यह दूसरों की मदद करेगा जितना कि यह मेरी मदद करता है। यह कई ओपन सोर्स टूल्स की एक रचना है जो आपको बॉक्स से बाहर काम करने की आवश्यकता है।

इसके लिए requjs टेक्स्ट प्लगइन और requjs हैंडलबार्स प्लगइन का उपयोग करके इसका एक और अधिक शानदार समाधान है।

यह चलाने के लिए एकल आदेश प्रदान करता है: dev वेब सर्वर, जैस्मीन एकल ब्राउज़र परीक्षण धावक, जैस्मीन जेएस-टेस्ट-ड्राइवर बहु ​​ब्राउज़र परीक्षण धावक, और जावास्क्रिप्ट और सीएसएस के लिए concatenization/minification। यह उत्पादन एबगिंग के लिए आपके ऐप के एक अपूर्ण संस्करण को भी आउटपुट करता है, आपके हैंडलबार टेम्पलेट्स को प्रीकंपाइल करता है, और अंतर्राष्ट्रीयकरण का समर्थन करता है। कोई सेटअप आवश्यक नहीं है। यह सिर्फ काम करता है।

http://github.com/davidjnelson/agilejs