2008-09-08 13 views

उत्तर

23

यह वास्तव में इस बात पर निर्भर करता है कि आप क्या करने का प्रयास कर रहे हैं, लेकिन इसमें से अधिकांश के लिए यहां कुछ पृष्ठभूमि है।

सबसे पहले, आप आम तौर पर टेस्ट के साथ अपने परीक्षण कार्यक्रमों लिखते थे :: अधिक या टेस्ट :: कोर परीक्षण कार्यक्रम के रूप में सरल:

use Test::More tests => 2; 

is 3, 3, 'basic equality should work'; 
ok !0, '... and zero should be false'; 

आंतरिक रूप से, टेस्ट :: बिल्डर उत्पादन के लिए के रूप में उन परीक्षण के परिणाम कहा जाता है टीएपी (Test Anything Protocol)। टेस्ट :: हार्नेस (टीएपी :: हार्नेस के चारों ओर एक पतला रैपर), टीएपी को पढ़ता है और व्याख्या करता है, आपको बताता है कि क्या आपके परीक्षण पास हुए या असफल रहे। ऊपर वर्णित "सिद्ध" उपकरण टेस्ट :: हार्नेस के साथ बंडल किया गया है, तो मान लीजिए कि उपरोक्त को टी/निर्देशिका (मानक पर्ल परीक्षण निर्देशिका) में "संख्याओं" के रूप में सहेजें।टी ", तो आप इसे इस आदेश के साथ चला सकते हैं:

prove --verbose t/numbers.t 

या कि निर्देशिका में सभी परीक्षण चलाने के लिए (रिकर्सिवली, यह मानते हुए आप उपनिर्देशिकाएं में उतर करना चाहते हैं):

prove --verbose -r t/ 

(--verbose जाहिर है, वैकल्पिक है)।

एक तरफ ध्यान दें के रूप में, TestUnit प्रयोग नहीं करते। बहुत से लोग यह सलाह देते हैं, लेकिन यह एक लंबे समय पहले छोड़ दिया गया था और आधुनिक परीक्षण उपकरण के साथ एकीकृत नहीं है।

0

मैं टेस्ट के लिए जाना चाहते हैं :: अधिक, या सामान्य रूप में, कुछ भी है कि आउटपुट TAP

0

अब के रूप में, हम का उपयोग टेस्ट :: अधिक लेकिन मौजूदा मुद्दा हम सभी परीक्षण फ़ाइलें मैन्युअल रूप से चलाना है कि है परीक्षण के लिए। जो मैं खोज रहा हूं वह एक अधिक स्वचालित ढांचा है जो वृद्धिशील परीक्षण/बिल्ड चेक आदि कर सकता है

टेस्ट के चारों ओर एक रैपर :: इसके लिए अधिक आदर्श होगा लेकिन कुछ बेहतर और अधिक कार्यात्मक भी ठीक होगा।

मैं पर्लुनीट के माध्यम से जा रहा हूं यह देखने के लिए कि क्या इससे मदद मिलती है।

+1

कृपया PerlUnit प्रयोग नहीं करते। इसे छोड़ दिया गया है। यदि आपके पास xUnit शैली ढांचा होना चाहिए, तो Test::Class देखें। यह पर्ल के मानक परीक्षण ढांचे के साथ सक्रिय रूप से बनाए रखा और एकीकृत करता है। – Ovid

2

अगर मैं तुम्हें समझ में सही ढंग से आप TAP::Harness

2

लिए देख रहे हैं आप आदेश दर्ज करके ExtUtils::MakeMaker या Module::Build उपयोग कर रहे हैं, तो आप अपने सभी परीक्षणों चला सकते हैं स्वचालित रूप से "परीक्षण कर" या "परीक्षण का निर्माण" है, जो आपके प्रोजेक्ट के टी/उपफोल्डर में किसी * .t फ़ाइलों को निष्पादित करेगा।

यदि आप इनमें से किसी एक का उपयोग नहीं कर रहे हैं, तो आप एकाधिक परीक्षण स्क्रिप्ट के निष्पादन को स्वचालित करने के लिए TAP::Harness का उपयोग कर सकते हैं।

वास्तव में परीक्षण लिखने के लिए, Test::More या किसी भी मॉड्यूल का उपयोग करें जो अन्य ने यहां सुझाए हैं।

0

क्या आप 'साबित' उपयोगिता (ऐप :: प्रोव से) से अवगत हैं? आप इसे किसी दिए गए निर्देशिका में बिना किसी शब्द के, या बिना शब्द के सभी परीक्षणों को चलाने के लिए कह सकते हैं,

1

व्यक्तिगत रूप से, मुझे टेस्ट :: अधिकांश, इसकी मूल रूप से टेस्ट :: कुछ अतिरिक्त शानदार सुविधाओं के साथ अधिक पसंद है। बाहर CPAN Testers, जो स्वचालित परीक्षण के लिए उपकरणों का एक बहुत कुछ है http://sourceforge.net/projects/smolder

5

जब तक आप परीक्षण है कि नल का उत्पादन का उपयोग कर रहे (टेस्ट कुछ भी प्रोटोकॉल) उत्पादन आप इस उपयोगी होने के लिए मिल सकती है। उनमें से अधिकांश सीपीएएन पर होना चाहिए ताकि आप अपनी जरूरतों को पूरा करने के लिए इसे संशोधित कर सकें। टीएपी :: हार्नेस का उपयोग करके अपना खुद का परीक्षक लिखना भी बहुत आसान है।

आपको वास्तव में क्या करना है और आप इसे अपनी प्रक्रिया में कैसे फिट करने की कोशिश कर रहे हैं?

2

हम परीक्षण

आप निश्चित रूप से साबित का उपयोग किया जा करना चाहते हैं के लिए मैन्युअल रूप से सभी परीक्षण फ़ाइलों चलाने के लिए है (अपने परीक्षण चलाता है) और/या मॉड्यूल :: बिल्ड (अपने कोड बनाता है और फिर का उपयोग कर अपने परीक्षण चलाता है एक ही परीक्षण दोहन कोड जो आंतरिक रूप से उपयोग करता है।)

0

पर्ल में स्वचालित परीक्षण के लिए Test::Harness पर एक नज़र डालें, जिसमें prove उपकरण शामिल है।

prove उपकरण निम्न आदेश के साथ क्रियान्वित किया जा सकता:

prove -r -Ilib t 

यह 'टी /' निर्देशिका में परीक्षण सभी * .t फ़ाइलों recursivly होगा, जबकि शामिल पथ के लिए lib जोड़ने।

+0

-l एक शॉर्टेंड है -इलीब – Schwern

1

पसंद का टेस्ट स्वीट ढांचे Test::Harness है, जो एक परीक्षण चालन को नियंत्रित करने, परिणामों का संग्रह का ख्याल रखता है, आदि

विभिन्न मॉड्यूल परीक्षण, जिनमें से सबसे आम पाया जा सकता है के कुछ प्रकार प्रदान करने के लिए मौजूद है Test::Simple और Test::More में (दोनों टेस्ट-सरल वितरण में शामिल हैं)। सीपीएएन पर पूरा टेस्ट नेमस्पेस विशेष यूनिट-परीक्षण मॉड्यूल को समर्पित है, जिनमें से अधिकांश टेस्ट :: हार्नेस के तहत चलाने के लिए डिज़ाइन किए गए हैं।

सम्मेलन के अनुसार, परीक्षण एक परियोजना की टी/निर्देशिका में संग्रहीत होते हैं, और प्रत्येक परीक्षण फ़ाइल फ़ाइल एक्सटेंशन का उपयोग करती है .t; परीक्षण आमतौर पर

के माध्यम से चलाए जा रहे हैं
prove t/*.t 

मॉड्यूल वितरण आम तौर पर एक मेकअप लक्ष्य 'परीक्षण' नाम दिया है कि स्थापना से पहले टेस्ट स्वीट चलाता शामिल हैं। डिफ़ॉल्ट रूप से, सीपीएएन स्थापना प्रक्रिया के लिए आवश्यक है कि मॉड्यूल स्थापित होने से पहले परीक्षण के बाद परीक्षण पास हो जाएंगे।

5

क्या आपने smolder देखा है?

"डेवलपर्स और परीक्षकों द्वारा अपलोड (स्वचालित या मैन्युअल) अपलोड करने के लिए धूम्रपान परीक्षण एग्रीगेटर और टेस्ट कुछ भी प्रोटोकॉल का उपयोग करके धूम्रपान/प्रतिगमन परीक्षण देखें। विवरण और रुझान ईमेल या एटम फ़ीड के माध्यम से प्रदान किए गए नोटिफिकेशन और सूचनाएं हैं।"

+0

यह अच्छा है, लेकिन स्मोल्डर अब टीएपी अभिलेखागार को सही तरीके से पार्स नहीं कर रहा है। –

2

तुमने कहा था:

फिर भी पूरी तरह यकीन नहीं है कि तुम क्या कर रहे हैं के बाद

"क्या मैं देख रहा हूँ है स्वचालित ढांचे के वृद्धिशील परीक्षण कर सकते हैं/चेकों आदि निर्माण के और अधिक एक" ।जैसा कि अन्य ने उल्लेख किया है कि आप टेस्ट :: हार्नेस/टीएपी पर आधारित चीजों को देखना चाहते हैं। पर्ल परीक्षण समुदाय का विशाल बहुमत उस ढांचे का उपयोग करता है - इसलिए इसका उपयोग करके आपको अधिक समर्थन (और उपयोगी कोड) मिल जाएगा।

क्या आप "वृद्धिशील परीक्षण/निर्माण जांच" के बारे में कुछ और बात कर सकते हैं?

मुझे लगता है कि आप अपने परीक्षणों को समूहों में विभाजित करना चाहते हैं ताकि आप कुछ परिस्थितियों में परीक्षण के कुछ सेट चला रहे हों?

ऐसा करने के कुछ तरीके हैं। सरलतम सिर्फ फाइल सिस्टम का उपयोग करने के होगा - अपने परीक्षण निर्देशिका विभाजित ताकि आप की तरह बातें हैं:

 

core/ 
database.t 
infrastructure.t 
style/ 
    percritic.t 
ui/ 
    something.t 
    something-else.t 

और इसी तरह ... आप तो कमांड लाइन का उपयोग कर सकते "साबित" उन सब को चलाने के लिए उपकरण , या केवल कुछ निर्देशिकाएं, आदि

साबित करने के लिए बहुत सारे उपयोगी विकल्प हैं जो आपको चुनने देते हैं कि कौन से परीक्षण चल रहे हैं और किस क्रम में (उदाहरण के लिए हाल ही में विफल आदेश जैसे चीजें)। यह सब - स्वयं ही - आपको शायद जो चाहिए उसे आपकी ओर ले जाएगा।

(बीटीडब्ल्यू सीपीएएन से टेस्ट :: सरल/साबित/आदि का हालिया संस्करण प्राप्त करना महत्वपूर्ण है। हाल के संस्करणों में बहुत अधिक कार्यक्षमता है)।

यदि आप ओओ मानसिकता के हैं, या xUnit ढांचे के पिछले अनुभव हैं, तो आप टेस्ट :: क्लास पर एक नज़र डालना चाहते हैं जो एक पेर्ल xUnit ढांचा है जो टीएपी/टेस्ट के शीर्ष पर बना है: : हार्नेस परत। मुझे लगता है कि यह काफी एक बहुत PerlUnit की तुलना में बेहतर है - लेकिन मैं कहूँगा कि जब से मैं इसे :-) टेस्ट :: कक्षा http://delicious.com/tag/Test::Class

पर कुछ अधिक जानकारी के लिए स्वादिष्ट

चेक बाहर लिखा था यदि यह आप क्या नहीं है 'बाद में - क्या आप अपनी कार्यक्षमता के बारे में थोड़ा और विस्तार से जा सकते हैं?

चीयर्स,

एड्रियन

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