2009-10-27 7 views
22

मैं अजगर इकाई परीक्षण के साथ एक रूकी हूं, और विशेष रूप से cover.py। क्या कवरेज रिपोर्ट में आपकी वास्तविक परीक्षण फाइलों का कवरेज शामिल होना वांछनीय है?क्या यह संभव है cover.py रिपोर्ट से परीक्षण निर्देशिका बहिष्कृत करें?

यहां एक उदाहरण के रूप में मेरे HTML report का एक स्क्रीनशॉट है।

आप देख सकते हैं कि रिपोर्ट में tests/test_credit_card शामिल है। पहले तो मुझे रिपोर्ट से tests/ निर्देशिका छोड़ देते हैं, तो जैसे कोशिश कर रहा था:

coverage html --omit=tests/ -d tests/coverage 

मुझे लगता है कि आदेश के कई रूप कोशिश की, लेकिन मैं मुझे के जीवन के लिए नहीं परीक्षण बाहर रखा गया हो सकता है /। हार को स्वीकार करने के बाद, मुझे आश्चर्य हुआ कि रिपोर्ट में शामिल होने के लिए शायद टेस्ट फाइलें हैं।

क्या कोई इस पर कुछ प्रकाश डाल सकता है? धन्यवाद।

+0

मैं एक ऐसी ही समस्या थी। मैं कवरेज रिपोर्ट में अतिरिक्त पायथन फाइल (मानक lib, आदि) नहीं चाहता था। मैंने उन्हें एक्सएमएल से अलग कर दिया: http://stackoverflow.com/questions/2293647/how-do-i-generate-coverage-xml-report-for-a-single-package/2377148#2377148 –

उत्तर

16

अपने परीक्षणों के कवरेज को देखना एक अच्छा विचार है क्योंकि इससे समस्याएं हो सकती हैं। यदि आपका टेस्ट कोड नहीं चलाया जा रहा है तो इसे लिखने में बहुत कुछ नहीं था!

मुझे हमेशा एक मिलता है जब मैं दो इकाई परीक्षण कार्यों को एक ही नाम देता हूं - मैं मूल के कई महीनों बाद एक नया परीक्षण जोड़ता हूं और बस वही नाम चुनता हूं। सबसे अजीब ढांचा इस बारे में शिकायत नहीं करेगा - कार्यों में से एक दूसरे को छुपाता है और यह सिर्फ परीक्षणों में से एक नहीं चलाएगा! विस्तृत कवरेज रिपोर्ट हालांकि समस्या को तुरंत दिखाती है।

यदि आपके पास अपने परीक्षणों में कोई अन्य कोड है जो नहीं चल रहा है तो यह अन्य बगों को भी इंगित कर सकता है, हालांकि आमतौर पर बॉयलरप्लेट कोड की कुछ पंक्तियां होती हैं जो परीक्षणों को कैसे लागू किया जाता है, इस पर निर्भर नहीं हो सकता है , तो 100% तक पहुंचने के बारे में जुनून मत करो।

और यदि आपके पास टेस्ट कोड है जिसे वास्तव में और आवश्यकता नहीं है तो इसे हमेशा हटाना अच्छा होता है!

+2

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

5

अपनी परियोजना रूट फ़ोल्डर में .coveragerc फ़ाइल बनाएँ, और निम्न शामिल हैं:

[run] 
omit = *tests* 
+0

रन omit = * परीक्षण * –

+0

यदि आपको अपना उत्तर संशोधित करने की आवश्यकता है तो आप यह – WhatsThePoint

+0

@CynthiaSimiyu करने के लिए संपादन दबा सकते हैं, आपका उत्तर वास्तव में सहायक था क्योंकि मुझे कई निर्देशिकाओं को छोड़ने की आवश्यकता थी। – lmiguelvargasf

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