2013-12-10 12 views
5

मेरे पास एक बहुत बड़ा पायथन पैकेज है जो मैंने लिखा है, लगभग 3500 कथन, एक मजबूत इकाई और स्वीकृति परीक्षण सूट के साथ। मुझे कोड की गुणवत्ता के बारे में पूरी तरह से विश्वास है, लेकिन मैं पैकेज की उपयोगकर्ताओं के लिए सुचारू रूप से स्थापित प्रक्रिया के बारे में असहज हूं क्योंकि मुझे नहीं पता कि एक उचित पृथक वातावरण में स्थापित करने के लिए विश्वसनीय रूप से परीक्षण कैसे करें, कुछ ऐसा प्रत्येक टेस्ट रन के लिए एक ताजा ओएस इंस्टॉल के साथ एक अतिरिक्त मशीन को चारों ओर रखकर और फिर से इमेजिंग करना।मैं अपने पैकेज के लिए setup.py का परीक्षण कैसे करूं?

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

मैं अपनी विकास मशीन पर अपने setup.py और अन्य स्थापना बिट्स का प्रभावी ढंग से परीक्षण कैसे कर सकता हूं?

जैसे:: circuits' fabfile

यह सिर्फ के बारे में के लिए काम करना चाहिए

+2

वर्चुअलएन्व में 'python setup.py install' क्यों न करें? –

+0

मुझे कैसे पता चलेगा कि मेरी विकास मशीन पर मौजूद फाइलों या अन्य निर्भरताओं का उपयोग नहीं कर रहा है जो अंत उपयोगकर्ता के पर्यावरण में नहीं होंगे? – scanny

+0

यदि आपको लगता है कि आप उस वर्चुअलएन्व पर भरोसा नहीं कर सकते जो आप चाहते हैं तो आप वर्चुअल मशीन आज़मा सकते हैं। वर्चुअलबॉक्स को पकड़ें और स्नैपशॉट लें, फिर आप क्लीन स्थिति को वापस पाने के लिए setup.py चला सकते हैं और स्नैपशॉट को पुनर्स्थापित कर सकते हैं। आभासी मशीनें अन्य चीजों के टन के लिए भी उपयोगी होती हैं। :) हां यह इसके लिए अधिक है लेकिन एक अलग भौतिक मशीन के रूप में overkill के रूप में नहीं है। –

उत्तर

3

आप उपकरण (जो मैं करते हैं) fabric की जाँच और मैं अपने सभी परियोजनाओं के पार लिखा है कपड़ा कार्यों के सेट को पसंद करते हैं किसी भी अजगर परियोजना और का इस्तेमाल करता है:

  • स्फिंक्स
  • py.test/tox
  • virtualenv

कुछ बुनियादी कार्य प्रवाह:

fab build # build the package in non-development mode 
fab develop # build the package in development mode 
fab docs  # build/regenerate the documentation 
fab test  # run tie unit test suite 
fab release # run through a tested release cycle 

प्रकार: आदेशों की सूची के लिए fab -l और fab help:<name> किसी भी आदेश पर मदद के लिए।

अद्यतन: हाल ही में हम Docker

fab docker:build # Build a Docker image 
fab docker:publish # Publish Docker image to the Docker Hub 
fab docker:run  # Run a new Docker container 
+0

हम्म, यह दिलचस्प लग रहा है। तो आप तैनाती परीक्षण स्थिरता के रूप में कार्य करने के लिए कहीं भी एक अलग मशीन चल रहे हैं?यह वास्तव में एक संभावित विकल्प के रूप में एक सतत एकीकरण (सीआई) पर्यावरण को ध्यान में लाता है। शायद मुझे ट्रेविस सीआई या कुछ पर पैकेज डालने पर विचार करना चाहिए। मैंने थोड़ी देर पहले उस पर विचार किया है लेकिन वास्तव में इसका शोध नहीं किया था। – scanny

+0

नहीं, कपड़े के कार्य केवल सभी स्थानीय हैं। हालांकि मैं अपनी सभी परियोजनाओं को drono.io और shiningpanda.com सीआई सेवाओं दोनों पर धक्का देता हूं - लेकिन यह ia बिटबकेट द्वारा रिपोजिटरी हुक द्वारा स्वचालित रूप से संभाला जाता है। –

+0

हम्म, यह दिलचस्प है। तो आपकी स्थानीय मशीन पर आप वास्तव में इमारत क्यों करते हैं? आप अलगाव कैसे प्राप्त करते हैं और क्या यह आपके निर्माण स्क्रिप्ट/setup.py में अपना विश्वास बढ़ाता है? मुझे लगता है कि मेरा दूसरा सवाल यह है कि यदि कोई एसएसएच कनेक्शन शामिल नहीं है तो आपको केवल एक बैश स्क्रिप्ट के बजाय कपड़े का उपयोग करने की आवश्यकता क्यों है? या वहाँ है? – scanny

2

के साथ काम करने के लिए आप वास्तव में अलगाव के बजाय सिर्फ virtualenv में python setup.py install कर चाहते हैं fab docker आदेशों गयी। फिर वर्चुअलबॉक्स का उपयोग करें और इसमें कुछ मुफ्त लिनक्स ओएस इंस्टॉल करें। इंस्टॉलेशन के बाद मशीन का एक स्नैपशॉट लें ताकि आप किसी भी समय शुरुआती बिंदु पर एक क्लिक के साथ आसानी से वापस जा सकें और वहां python setup.py install आज़माएं।

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