2012-03-08 10 views
20

क्या मेरी साइट के टेम्पलेट्स के लिए मेरे django परीक्षण सूट में कोड कवरेज वाली रिपोर्ट बनाने का कोई तरीका है? मेरे पास पहले से ही पाइथन के लिए कवरेज है, लेकिन मृत या अवांछित टेम्पलेट कोड की पहचान करने के लिए टेम्पलेट्स के लिए कवरेज अद्भुत होगा।Django टेम्पलेट टेस्ट कवरेज

स्पष्टीकरण के लिए: मैं अपने टेम्पलेट्स में लाइनें ढूंढना चाहता हूं जिन्हें कभी भी मेरे परीक्षण सूट के दौरान निष्पादित या उत्सर्जित नहीं किया जाता है।

+0

django-debug-toolbar [टेम्पलेट जानकारी पकड़ता है] (https://github.com/django-debug-toolbar/django-debug-toolbar/blob/master/debug_toolbar/panels/template.py) शायद वह प्रेरित करेगा आप। – jpic

उत्तर

10

Django टेम्पलेट कवरेज टूल पर एक नज़र डालें: https://github.com/traff/dtcov यह वही करता है जो आपको चाहिए।

संपादित करें: Django टेम्पलेट कवरेज एक प्लगइन के रूप में coverage.py के लिए विलय कर दिया गया था: http://nedbatchelder.com/blog/201501/coveragepy_for_django_templates.html

यह मूल परियोजना के बजाय इसका इस्तेमाल करने की सिफारिश की है।

+0

यह कमाल है, धन्यवाद! – jterrace

1

टेम्पलेट्स किसी भी प्रकार की लाइन नंबर जानकारी जैसे पायथन स्रोत कोड स्टोर नहीं करते हैं। सबसे अच्छा आप कर सकते हैं बंदर नोडलिस्ट ऑब्जेक्ट को रिकॉर्ड करने के लिए पैच करता है यह रिकॉर्ड करने के लिए कि प्रत्येक नोड का कितना बार मूल्यांकन किया गया है, और उसके बाद टेम्पलेट्स को एक विशेष मोड में फिर से प्रस्तुत करें जो दिखाएगा कि कौन से नोड्स का मूल्यांकन किया जाता है।

संपादित करें: मुझे सही किया गया है।

टेम्पलेट्स डीओ स्टोर लाइन नंबर की जानकारी स्टोर करते हैं, लेकिन केवल टोकन की शुरुआत के लिए। अर्थात। यदि आपके पास टेक्स्टनोड कई पंक्तियां हैं, तो आपको इसे स्वयं संभालना होगा। Django.templates.debug में कुछ दिलचस्प कोड है जो ऐसे कवरेज रिपोर्टर के निर्माण के लिए उपयोगी हो सकता है।

+1

क्या आपको टेम्पलेट त्रुटियों में कोई लाइन नंबर नहीं मिलता है? – jterrace

0

मुझे नहीं लगता कि आप टेम्पलेट्स से कवरेज जानकारी प्राप्त कर सकते हैं, लेकिन आप यह पता लगा सकते हैं कि template_rendered signal को कनेक्ट करके कौन से टेम्पलेट प्रदान किए जाते हैं। आपका रिसीवर प्रस्तुत टेम्पलेट्स के नाम संग्रहीत करेगा।

फिर, आप आसानी से पता लगा सकते हैं कि कौन से टेम्पलेट खोज कमांड के साथ प्रस्तुत नहीं हैं।

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

  • कोई संबंधित समस्या नहीं^_^