2012-08-02 11 views
21

क्या ऐसी जगह है जहां मेरे परीक्षण मेटियर द्वारा संचालित किए बिना जी सकते हैं?उल्का में इकाई परीक्षण कहाँ रखा जाना चाहिए?

मैंने अभी अपना पहला उल्का प्रोजेक्ट शुरू किया, और Mocha और should.js के साथ इकाई परीक्षण लिखकर शुरू किया। हालांकि मोचा बिना किसी समस्या के चलते हैं, परीक्षण मेटीर को शुरू होने से रोकते हैं क्योंकि इसमें __meteor_bootstrap__.require (full error message) के बजाय नोड के require का उपयोग करने में समस्याएं हैं।

कहा जा रहा है कि, उल्का मेरे परीक्षण नहीं चलाना चाहिए!Meteor documentation के अनुसार, कोड केवल क्लाइंट, सर्वर, या दोनों पर रखा जा सकता है। यूनिट टेस्ट सूट इन श्रेणियों में कोई संबंध नहीं रखते हैं, और मैं not the only person हूं जो स्वचालित परीक्षणों के लिए एक अच्छी तरह से परिभाषित स्थान की उल्का की कमी से उलझन में है।

अभी, मेरी परीक्षण server/test/ में रखा जाता है, ब्लॉक में लिपटे प्रत्येक फ़ाइल की सामग्री के साथ:

if (typeof(Meteor) === 'undefined') { ... } 

हालांकि यह काम करता है, यह सुरुचिपूर्ण महसूस नहीं करता है। क्या आपके पास अपने मीटरी ऐप के साथ अपने परीक्षणों को संरचित करने के लिए कोई अन्य सुझाव है?

अद्यतन: उल्का डॉक्स में स्पष्ट निर्देश के एवज में, मैं Rails folder conventions (4 पैरा) पीछा किया, एक फ़ोल्डर मेरी परीक्षण संपत्ति के भंडारण के लिए test कहा जाता है का उपयोग कर। बाद में मैंने इसे server/test पर ले जाया क्योंकि मैं इसे क्लाइंट पर लोड नहीं करना चाहता था।

+0

यह उन्नयन की जरूरत है। मुझे विश्वास है कि मेटीर वेग और जैस्मीन अब अच्छे विकल्प हैं। –

उत्तर

18

tests/ फ़ोल्डर में अपने परीक्षण रखें। रेल के विपरीत, जो इस उद्देश्य के लिए test नामक फ़ोल्डर का उपयोग करता है, उल्का इस फ़ोल्डर के नाम के लिए बहुवचन tests का उपयोग करता है।

"परीक्षण" नामक फ़ोल्डर में संग्रहीत संपत्ति को पूरी तरह से उल्का द्वारा अनदेखा किया जाएगा; ये संपत्ति क्लाइंट या सर्वर पर लोड नहीं की जाएगी।

विडंबना यह है कि मुझे opposite issue रखने वाले किसी व्यक्ति द्वारा बंद कर दिया गया था जो मेटीयर क्लाइंट द्वारा उनके परीक्षणों को लोड करना चाहता है।

+1

मुझे आश्चर्य है कि यह व्यवहार कहीं कहीं दस्तावेज किया गया है। – punund

+5

इस मुद्दे को आधिकारिक उल्का दस्तावेज के ["आपकी संरचना को संरचित करना"] (http://docs.meteor.com/#structuringyourapp) अनुभाग में दस्तावेज किया गया है। – Blackcoat

2

0.6.0 के रूप में, एक दिलचस्प दृष्टिकोण विशेष रूप से आपके ऐप के लिए स्थानीय स्मार्ट पैकेज का उपयोग करना है, जिसे आसानी से मीटियर के छोटे से उपयोग करके परीक्षण किया जा सकता है। आपके ऐप को बूटस्ट्रैप करने के लिए स्मार्ट पैकेज के बाहर रहने वाले आपके पास न्यूनतम न्यूनतम कोड होगा।

संपादित करें: मैंने यह दृष्टिकोण किया है, और मुझे स्मार्ट पैकेज के बाहर रहने वाले न्यूनतम न्यूनतम कोड की भी आवश्यकता नहीं है। पूरा ऐप पैकेज है।

1

अपनी परीक्षण फ़ाइलों को tests फ़ोल्डर में रखें और आपको ठीक होना चाहिए। यदि आपका एप्लिकेशन ऐसा है कि आपके पास server या client फ़ोल्डर में घोंसला वाली कई फ़ाइलें हैं, तो आप अपने tests/client या tests/server निर्देशिका में समान फ़ोल्डर संरचना को दोहरा सकते हैं। कोई नियम नहीं, लेकिन मुझे लगता है कि यह रखरखाव के लिए मदद करता है और मुझे लापता वर्ग त्रुटि को डिबग करने में घंटों खर्च करने का अनुभव हुआ है जिसे परीक्षण फ़ोल्डर में फ़ाइल संरचना व्यवस्थित करके हल किया गया था।

1

चूंकि यह 2012 से प्रश्न है, और यहां कोई भी व्यापक उत्तर नहीं है, मैं यहां एक प्रयास करना चाहता हूं।

यह आपके उल्का प्रोजेक्ट का परीक्षण करने के बारे में सोचने के लिए good starting point है।

संक्षेप चरण 1 में: चमेली चरण 2: उल्का Sanjo जोड़ने उल्का वेग जोड़ें: एचटीएमएल-रिपोर्टर

पल आप ऐसा करते हैं, और अपने आवेदन चल रहा है तो (या जब भी आप अपने आवेदन वापस चलने शुरू हो), ब्राउज़र के दाहिने ऊपरी कोने पर- जहां आप अपना आवेदन खोलते हैं, खोला जाता है - आप एक चमकते बिंदु को देखना शुरू कर देंगे। बस। अब आपके पास अपना परीक्षण ढांचा है।

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

Velocity Test Status

यह आपका परीक्षण निर्देशिका संरचना पैदा करने के लिए सुविधा संबंध हैं।

वैकल्पिक रूप से, आप इसे मैन्युअल रूप से नीचे कर सकते हैं। निर्देशिका संरचना पर निर्णय लेने के लिए अगली बात है। Meteor Documentation says enough about it. You need to have tests folder in your project root

here से क्यू लेते हुए, आप इस तरह जा सकते हैं।

<projectRoot> 
|---jasmine 
     |---client 
      |--- integration 
         |---- my.first.integration.spec.js 
     |---client 
      |--- unit 
         |---- my.first.unit.spec.js 
|---jasmine 
     |---server 
      |--- integration 
         |---- my.first.integration.spec.js 
     |---server 
      |--- unit 
         |---- my.first.unit.spec.js 

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

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