2011-11-07 6 views
9

मैं निम्नलिखित ठेठ अजगर परियोजना फ़ाइल संरचना हैको संगठित करने और रन unittests और कार्यात्मक परीक्षण अलग का उपयोग कर कैसे nosetests

packageA 
    +----subpackage1 
      +----classa.py 
    +----subpackage2 
      +----classb.py 
    +----test 
      +----subpackage1 
        +----classa_test.py 
      +----subpackage2 
        +----classb_test.py 

मैं वर्तमान में तो मैं unittests और कार्यात्मक परीक्षण चला सकते हैं मेरी unittests और कार्यात्मक टेस्ट का आयोजन करने के लिए कोशिश कर रहा हूँ अलग से नाक का उपयोग करते हुए, लेकिन सभी परीक्षण चलाने का विकल्प भी है। परीक्षण पैकेज ए/टेस्ट/सबपैकेज 1 और पैकेज ए/टेस्ट/सबपैकेज 2 में रहते हैं।

  • विभिन्न परीक्षणों को व्यवस्थित करने का एक अच्छा तरीका क्या है? फ़ोल्डर द्वारा (कार्यात्मक/बनाम इकाई /)? टेस्ट क्लास (क्लासैटैट बनाम क्लासएफंक्शनलटेस्ट) के सम्मेलन का नामकरण करके? या परीक्षण विधियों के सम्मेलन का नामकरण करके (classa_foo_test बनाम classa_bar_functional_test)?
  • क्या कोई बता सकता है कि कैसे nosetests regex मिलान काम करता है? विकल्प -एम, -आई और-जैसे मैं दौड़ने की उम्मीद करता हूं उतना प्रतीत नहीं होता है। क्या रेगेक्स मिलान निर्देशिका (उपपृष्ठ 1), फ़ाइलें (classa_test) या परीक्षण कक्षाएं (क्लासैटएस्ट) या परीक्षण विधियां (classa_foo_test) है? मैं बेहद उलझन में हूं

उत्तर

7

मेरे परीक्षण निर्देशिका संरचना इस तरह से लग रहा है। प्रत्येक निर्देशिका अलग सेटिंग्स के साथ अलग django परियोजना है और परीक्षण चलाने के लिए इस्तेमाल प्रबंधन प्रबंधन कमांड है।

एक निर्देशिका में परीक्षण रखने के लिए एक अच्छा फायदा होता है - जब परियोजना तैनात की जाती है, तो इसके साथ परीक्षण तैनात करने का कोई कारण नहीं है। तो मैं बस एक निर्देशिका पट्टी और यह सब कुछ है।

(परीक्षण मैं Django-समझदार परीक्षण का उपयोग चलाने के लिए: https://github.com/Almad/django-sane-testing)

+0

आप कहते हैं "प्रत्येक निर्देशिका अलग सेटिंग्स के साथ अलग django प्रोजेक्ट है और परीक्षण चलाने के लिए प्रबंधन प्रबंधन कमांड होता है" लेकिन आपका पेड़ वास्तव में यह नहीं दिखाता है। साथ ही, आप जिस कस्टम प्रबंधन कमांड का उपयोग कर रहे हैं वह क्या है? – supervacuo

+0

@supervacuo मैंने नहीं कहा ** कस्टम प्रबंधन आदेश **, लेकिन ** कस्टम सेटिंग्स ** के साथ प्रबंधन कमांड। टेस्ट को 'manage.py test' कमांड के माध्यम से django-sane-test द्वारा चलाया जाता है (सेटिंग्स में कुछ संशोधन के साथ,' run_tests.py' में लपेटा गया है, डीएसटी दस्तावेज़ देखें - http://django-sane-testing.readthedocs.org/ एन/नवीनतम/उपयोग.html # रनिंग-टेस्ट) – yedpodtrzitko

+0

ठीक है, काफी उचित है। – supervacuo

-2

मैं कार्यात्मक क्षेत्र द्वारा परीक्षण व्यवस्थित करने का प्रयास करूंगा। मैं वास्तव में नहीं जानता कि नाक क्या है।

लेकिन यदि आप उदाहरण के लिए किसी वेबपृष्ठ के लिए लॉगिन क्षेत्र का परीक्षण करते हैं तो "लॉगिन" या "loginTests" नामक एक उपफोल्डर बनाएं, और मेनू परीक्षण के लिए "मेनू" या "मेनूटेस्ट" फ़ोल्डर बनाएं। अच्छे नामकरण सम्मेलनों के साथ-साथ हमेशा अच्छा होता है, इसलिए टेस्ट और फ़ोल्डर्स को ठीक से जांचें कि वे क्या परीक्षण कर रहे हैं। जितना हो सके उतना सटीक बनें।

root 
    + --- tests 
    |  + --- unit_tests 
    |  |   + --- some_app_tests 
    |  |   + --- another_app_tests 
    |  |   | run_tests.py 
    |  | 
    |  + --- integrate_tests 
    |     + --- some_app_tests 
    |     + --- another_app_tests 
    |     | run_tests.py 
    |  
    + --- project_root 
      + --- some_app 
      + --- another_app 

मैं इकाई और integrate- निर्देशिका में परीक्षण के साथ निर्देशिका coresponding बनाने प्रत्येक व्यक्ति एप्लिकेशन के लिए:

1

आप Django परियोजना विकसित कर रहे हैं, तो आप इस पुस्तकालय की कोशिश कर सकते हैं: unclebob https://github.com/gabrielfalcao/unclebob

यह एक तरह से कैसे व्यवस्थित करने के लिए और चलाने का सुझाव आपके यूनिट परीक्षण और कार्यात्मक परीक्षण।

+0

+1 मैंने पहले 'चाचाबोब' नहीं देखा था, लेकिन यह अच्छा परीक्षण प्रथाओं को प्रोत्साहित करने का एक बहुत अच्छा तरीका प्रतीत होता है (मुझे विशेष रूप से "अगर आप केवल यूनिट परीक्षण चलाते हैं, तो चाचाबोब परीक्षण डेटाबेस सेट अप नहीं करेगा") , और यह भी हाल ही में अद्यतन किया गया है। – supervacuo

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