2008-08-31 7 views
17

में यूनिट परीक्षण क्या पाइथन में यूनिट परीक्षण फ्रेमवर्क मानक फ्रेमवर्क की मानक xUnit शैली के अनुकूल है? यदि हां, तो यह क्या है, यह कहां है, और क्या यह कोई अच्छा है?पाइथन

उत्तर

23

पायथन में कई परीक्षण ढांचे हैं, जिनमें unittest, doctest, और nose शामिल हैं। सबसे xUnit-like unittest है, जिसे Python.org पर प्रलेखित किया गया है।

3

है testoob जो test.Also XUnit-यानी की सुंदर पूर्ण सुइट है, और एक अच्छा रिपोर्टिंग विकल्प है

0

वहाँ भी PyUnit जो हो सकता है क्या आप देख रहे हैं।

2

पर विचार करें py.test के रूप में मानक पुस्तकालय में शामिल है। एनयूनीट के बिल्कुल समान नहीं है, लेकिन परीक्षण अच्छी ऑटो-डिस्कवरी सहित अच्छी सुविधाओं के साथ बहुत अच्छा है और "परीक्षण और कोड देखें - जब कुछ बदलाव पिछले बार विफल होने वाले परीक्षणों को दोबारा बदल देता है। जैसे ही सभी परीक्षण पास होते हैं, सभी को चलाने के लिए स्विच करें परीक्षण जब भी कुछ बदलता है। " विकल्प।

0

कभी भी xUnit का उपयोग नहीं किया गया है, इसलिए मैं आपको नहीं बता सकता कि ढांचे अच्छे/बुरे तुलनात्मक हैं, लेकिन here एक ऐसी स्क्रिप्ट है जो मैंने लिखा है जो अनजान ढांचे का उपयोग करता है (एपीआई कार्यों को जांचने के लिए), और सबसे अच्छा (मैंने जो उदाहरण दिए हैं, उन्हें जांचने के लिए)

मेरी एकमात्र समस्या कुछ अपवाद को अपवादित करने की जांच कर रही है, जिसे थोड़ा अपरिवर्तित किया गया है (आपको इसे एक फ़ंक्शन/लैम्ब्डा पास करना होगा जो अपवाद को उठाए, बजाय केवल कमांड की तरह, बाकी ढांचे) .. इसके अलावा, यह वही करता है जो इसे चाहिए, विश्वसनीय रूप से, और इसे कुछ समय के लिए डिफ़ॉल्ट पायथन वितरण में शामिल किया गया है।

9

मैं nose की अनुशंसा करता हूं।

यह इकाई परीक्षण ढांचे का सबसे पायथनिक है। परीक्षण धावक दोनों कार्य और unittests चलाता है, तो आप अपनी पसंद की परीक्षा की शैली का उपयोग करने के लिए स्वतंत्र हैं।

+0

नाक का लिंक मर चुका है। – pefu

+1

लिंक – codeape

+0

अपडेट किया गया बहुत बहुत धन्यवाद। – pefu

1

मैं नाक की सलाह देता हूं।

उचित सरल स्थापना के बाद, आपको बस अपने प्रोजेक्ट फ़ोल्डर में "नोसेटेट" चलाने होंगे और नाक को आपके सभी परीक्षण मिलेंगे और उन्हें चलाएंगे। मुझे प्लगइन (कवरेज, जीएई, इत्यादि) और नाक को सीधे मेरी पायथन स्क्रिप्ट के भीतर से कॉल करने का अधिकार पसंद है।

0

नाक लचीलापन और सुविधा का सबसे अच्छा संयोजन प्रतीत होता है। यह एक ढांचे से unittests, doctests, कवरेज (एक विस्तार के साथ) और py.test- जैसे परीक्षण चलाता है और बहुत सराहनीय करता है। इसमें पर्याप्त लोकप्रियता है कि इसके साथ ही कुछ आईडीई एकीकरण भी कमोडो एडिट के लिए किया गया है और मैं इसे कहीं और देखकर आश्चर्यचकित नहीं होगा।

मुझे इसे एक मजबूत कारण के लिए पसंद है: मैं लगभग हमेशा एक और ढांचे में अधिक व्यापक परीक्षण लिखने से पहले हमेशा काम करता हूं। ऐसा इसलिए है क्योंकि, बुनियादी परीक्षणों के लिए, दो पत्थरों को एक पत्थर से मारते हैं। आपको निष्पादन योग्य परीक्षण मिलते हैं (हालांकि वे कभी-कभी अच्छी तरह से लिखने के लिए थोड़ा बेकार होते हैं) साथ ही साथ एपीआई दस्तावेज और इंटरैक्टिव दस्तावेज एक ही समय में। जब आप कमांड लाइन विकल्प (--with-doctest) का उपयोग करते हैं तो नाक इन्हें बंडल डिक्स्टेस्ट एक्सटेंशन के साथ चलाएगा।

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