2010-02-04 10 views
14

यह प्रश्न this question I asked before से संबंधित है। मेरे पास कई संबंधित फाइलें हैं (एटी, बीटी, सीटी आदि) उनके संबंधित मॉड्यूल ए, बी, सी & का परीक्षण करने के लिए बनाई गई हैं। लेकिन जब मैं एक मेक टेस्ट करता हूं, तो यह सभी परीक्षण चलाता है। लेकिन, जब मैं एक विशिष्ट मॉड्यूल पर काम कर रहा हूं, बी कहता है, मैं उस मॉड्यूल के लिए यूनिट परीक्षण चलाने के लिए चाहता हूं। मेरे परिवर्तनों के साथ पूरा होने के बाद, मैं पूरा सूट चलाऊंगा।मैं पर्ल वितरण में केवल एक विशिष्ट परीक्षण कैसे चला सकता हूं?

तो make test B जैसे ऐसा करने का कोई तरीका है, जो केवल बीटी का उपयोग करके परीक्षण चलाएगा? और जब मैं कुछ कहता हूं "सब कुछ परीक्षण करें" यह "टी" डीआईआर के तहत सभी परीक्षण चलाता है? धन्यवाद।

% make; perl -Mblib t/B.t 

आप भी prove साथ एक ही बात कर सकते हैं:

उत्तर

14

मैं सिर्फ परीक्षण है कि मैं चलाना चाहते हैं चलाते हैं।


कि -Mblib आप के लिए @INC को लोड मॉड्यूल blib जो केवल (इसके तहत और विभिन्न विशेष निर्देशिका) blib/lib कहते हैं। यह पर्ल के साथ आता है। prove को -b स्विच के साथ एक ही चीज़ करना चाहिए।

मेरे आदेश वास्तव में दो भागों है:। make (या Module::Build के लिए ./Build इस स्रोत बनाता है और "पुस्तकालय का निर्माण", या blib में पर्ल मॉड्यूल और अन्य फ़ाइलों को ले जाता है, पूर्ण स्थापना में एक मध्यवर्ती कदम के रूप में । blib में संस्करणों के खिलाफ आम तौर पर make test काम करता है और ताज़ा करता है मेरे लिए। मैं अपने दम पर परीक्षण कर रहा हूँ के बाद से, मैं यह सुनिश्चित करें कि कि मैं blib अपने आप पर्ल के मॉड्यूल खोज पथ में ताज़ा है और यह भी शामिल है।

के बावजूद तथ्य यह है कि मुझे यह सब पता है, आप आश्चर्यचकित हो सकते हैं कि मैं अक्सर करना भूल जाता हूं उन चरणों में से एक और चीजों के गलत संस्करण के खिलाफ परीक्षण समाप्त करना, चाहे पूरी तरह से स्थापित पुराने संस्करण (-Mblib भूल गए) या पुराने विकास स्रोत (make भूल गए)। यह मैं ओर जाता है जैसे बयान डिबगिंग के लिए:

print "No really, this is the Foo version. kthnxbye\n"; 
+0

धन्यवाद, यह वास्तव में सरल था। – John

2

सीधे perl काम करता है के माध्यम से परीक्षण निष्पादित। prove कमांड को प्रक्रिया को सरल बनाने, कीस्ट्रोक को सहेजने और परीक्षण-डीबग-परीक्षण चक्र को छोटा करने के लिए डिज़ाइन किया गया था।

prove एक समय में कई परीक्षणों पर काम करने के लिए डिज़ाइन किया गया था, जिसे आप perl के माध्यम से invoking नहीं कर सकते हैं। उदाहरण के लिए, आप कर सकते हैं:

prove t/*.t 
prove t/  # Same as t/*.t 
prove t/dev/ # Run only tests in t/dev/ 
prove -r t/ # Runs all .t files in t/ and any directories below. 

आधुनिक prove भी परीक्षण के सुइट से निपटने और संशोधित कैसे परीक्षण से नल उत्पादन प्रदर्शित किया जाता है के लिए कई विशेषताएं है।

prove --help आपको सभी prove के विकल्प दिखाएगा, और prove --man आपको मैन्युअल पृष्ठ दिखाएगा।

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

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