2009-09-02 19 views
9

मैं अपने डीजेगो परियोजनाओं में यूनिट परीक्षणों को एकीकृत करना चाहता हूं और मैंने यूनिट परीक्षण को एक मुश्किल से देखने के लिए खोज की है क्योंकि जिस तरह से Django कार्यों के साथ विचार लागू करता है।मैं डीजेगो दृश्यों का परीक्षण कैसे करूं?

उदाहरण के लिए, फ़ंक्शन में URL होने पर प्रत्येक फ़ंक्शन Django में एक दृश्य/पृष्ठ होता है।

मैं Django विचारों का परीक्षण कैसे करूं?

उत्तर

10

मुझे यकीन नहीं है कि एक दृश्य का परीक्षण कैसे मुश्किल है।

आप बस test client का उपयोग करें।

कोड कवरेज आसान है। आप कारण बताते हैं कि यूआरएल अनुरोध कोड पथ पर कैसे मानचित्र करता है और उपयुक्त यूआरएल अनुरोध करता है।

यदि आप चाहते हैं, तो आप अनुरोध ऑब्जेक्ट बनाकर और प्रतिक्रिया ऑब्जेक्ट की जांच करके "मैन्युअल रूप से" दृश्य कार्यों को कॉल कर सकते हैं, लेकिन यह बहुत अधिक काम है।

यदि आपको अपने कोड कवरेज के बारे में संदेह है, तो यह एक अच्छी बात है। इसका मतलब है कि आपके पास कोड है जिसे आप आसानी से किसी URL पर मैप नहीं कर सकते (जो कि कोई उपयोगकर्ता कभी भी वेब एप्लिकेशन देख सकता है।) यदि आपके पास ऐसा कोड है जो किसी URL पर मैप नहीं करता है, तो आपको शायद (ए) हटा देना चाहिए कोड या (बी) इसे एक अलग मॉड्यूल में दोबारा दोहराएं।

हमारे पास हमारे दृश्य कार्यों के बाहर बहुत सारे मॉड्यूल हैं। हमारे विचार कार्य इन मॉड्यूल आयात करते हैं। हम इन "दृश्य दृश्य के बाहर" मॉड्यूल सामान्य unittest के साथ परीक्षण करते हैं।


यहां एक सामान्य संरचना है।

some_big_product/ 
|-- __init__.py 
|-- settings.py 
|-- urls.py 
|-- logging.ini 
|-- other_global_files.py 
|-- an_app_1/ 
| |-- __init__.py 
| |-- urls.py 
| |-- models.py 
| |-- views.py 
| |-- tests.py <-- the generic Django testing 
| |-- app_specific_module.py 
| |-- app_specific_package/ 
| | |-- __init__.py 
| |-- test_app_specific_module.py <-- unittest 
| |-- test_app_specific_package.py 
|-- generic_module.py 
|-- generic_package/ 
| |-- __init__.py 
|-- tests/ 
| |-- test_this.py 
| |-- test_that.py 
| |-- test_all.py <-- not always practical 
|-- scripts/ 
    |-- run_tests.sh 
+0

हम्म यह मेरे पास एक और सवाल का जवाब दे सकता है। Django प्रोजेक्ट/ऐप पदानुक्रम में अन्य मॉड्यूल जोड़ते समय आप निर्देशिका संरचना का प्रबंधन कैसे करते हैं? –

+0

धन्यवाद! इससे बहुत मदद मिलती है। –

+0

test_all.py कैसे काम कर सकता है? मुझे लगता है कि मैं सबकुछ एक बड़े टेस्टकेस में प्राप्त करना चाहता हूं। टेस्टसूइट, और फिर इसे चलाएं। इस तरह सभी टेस्ट आंकड़े (पास और असफल) अंत में एक आउटपुट में एकत्रित होते हैं। मैं यह तय नहीं कर सकता कि मुझे अतिरिक्त unittests चलाने के लिए Django के "manage.py परीक्षण" को अनुकूलित करना चाहिए, या मेरे स्वयं के शीर्ष-स्तरीय परीक्षण धावक को लिखना चाहिए जो Django के यूनिट परीक्षणों को शामिल करता है। –

2

django.test.client आपको दृश्य के मूल इकाई परीक्षण के लिए आवश्यक सब कुछ होना चाहिए। मुझे पूर्ण स्टैक का परीक्षण करने के लिए वास्तव में twill और selenium पसंद है।

0

आप tddspry का प्रयास कर सकते हैं - Django को नोसेटेट और टवील के साथ परीक्षण करने के लिए मददगारों का संग्रह। नाक में कवरेज प्लगइन भी है जो कवरेज की सुंदर रिपोर्ट उत्पन्न करता है।

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