Drupal में Test Driven Development (TDD) कैसे करें?


30
  • DrDal (PHP मॉड्यूल, Drupal मॉड्यूल, आदि) में TDD में प्रयुक्त उपकरण क्या हैं?
  • आपकी प्रतिबद्धता / परीक्षण / तैनाती वर्कफ़्लो कैसा दिखता है? क्या आप इस वर्कफ़्लो को प्रबंधित करने के लिए Phing, PHPUnderControl, Hudson का उपयोग करते हैं?
  • किस तरह से इकाई परीक्षण आपके कोड को अधिक विश्वसनीय बनाता है?
  • क्या आपको एक अलग, महंगी, स्टैंड-अलोन यूनिट टेस्ट सर्वर की आवश्यकता है, या आप इसे लैपटॉप से ​​कर सकते हैं?

मुझे पता है कि रॉबर्ट एक उत्कृष्ट तकनीकी पोस्ट लिखा यहाँ SimpleTest साथ Drupal में इकाई परीक्षण के बारे में; मैं वर्कफ़्लो और कॉन्फ़िगरेशन भाग को कवर करने में अधिक रुचि रखता हूं। वर्तमान में मेरे पास एक विकास मशीन, मंचन और उत्पादन सर्वर है। उत्पादन और स्टेज दोनों साइटें 300MB RAM / 300MHz CPU ड्रीमहोस्ट VPS पर चलती हैं।

जवाबों:


8

रूबी दुनिया में, टीडीडी को ढांचे में निर्मित उपकरणों द्वारा सुविधाजनक बनाया गया है। फैक्ट्री गर्ल, मोचा, आरपीएसईसी और अन्य डेवलपर्स डेवलपर्स को आसानी से और गतिशील रूप से परीक्षण बनाने की अनुमति देते हैं जो आवश्यक परीक्षण मामलों को संबोधित करते हैं।

मैं Drupal में TDD टूल्स की कमी के कारण निराश हो गया हूँ। उनके साथ मेरा सबसे बड़ा मुद्दा यह है कि एकल परीक्षण चलाने में जितना समय लगता है। प्रत्येक पुनरावृत्ति 60-90 सेकंड लेने वाले व्यक्तिगत परीक्षणों द्वारा विकास चक्रों को धीमा नहीं किया जा सकता है। यदि आप परीक्षण लिखने में परेशान होते हैं तो पूर्ण परीक्षण सूट कई घंटे की समय सीमा में चलेगा।

मुझे संदेह है कि यह एक पूर्ण db की नकल करने के साथ है जो एक परीक्षण चलाया जाता है, लेकिन जो मैं बता सकता हूं उससे निकट भविष्य में बदलने की संभावना नहीं है, खासकर यदि आपको ऐसा करने के लिए DrupalWebTestCase का उपयोग करने की आवश्यकता है।

मैं एक साथ Phactory और phpunit का उपयोग कर एक समाधान हैक कर रहा हूं , जो मैन्युअल रूप से Drupal बूटस्ट्रैप करता है। जाहिर है कुछ मुद्दों में चल रहा है और इसे समाप्त नहीं किया है, लेकिन यह वहाँ हो रहा है।

सौभाग्य से मेरा ज्यादातर काम बैकेंड लेयर पर है, इसलिए मैं DRUPAL_BOOTSTRAP_DATTASE स्तर पर रह सकता हूं। लेकिन मैं और अधिक स्थितियों में भाग रहा हूं जहां मुझे पूर्ण स्टैक की आवश्यकता होगी।

अंत में, ड्रुपल में टीडीडी का अच्छी तरह से समर्थन नहीं किया गया है, इसलिए आप इसे ड्रुपल टेस्ट फ्रेमवर्क के बाहर काम करने, या खराब प्रदर्शन को सहन करने के लिए अपना स्वयं का लिख ​​सकते हैं।

-- अद्यतन करें --

मैंने Phactory के साथ एक पूर्ण Drupal एकीकरण सफलतापूर्वक सेट किया है, और अब मैं Drupal Web Test Case के बजाय phpunit के माध्यम से अपने परीक्षण चला रहा हूं। तो यह संभव है।

मैं उम्मीद करता हूं कि मैं एक बिंदु पर पहुंचूंगा जहां मैं इसे जारी कर सकता हूं और इसे चरणबद्ध डॉक्टर में शामिल किया जा सकता है।

- अद्यतन 2 -

Doc को कैसे सेटअप किया जाए इस बारे में डॉक्टर https://github.com/trimbletodd/phactory पर हैं


आपके सहयोग के लिए धन्यवाद। यह बहुत दिलचस्प है कि यूनिट परीक्षण के लिए फक्टोरी के साथ क्या हो रहा है। आगे देखने के लिए कि Drupal मॉड्यूल आप खाना बना रहे हैं;)
शौकिया बरिस्ता

मैंने अपने कांटे पर द्रुपाल के भीतर फेकटोरी को कैसे संभाल रहा हूं, इसका एक त्वरित डॉक प्रस्तुत किया। मैंने मास्टर को एक पुल अनुरोध प्रस्तुत किया, लेकिन इसे अभी तक शामिल नहीं किया गया है। github.com/trimbletodd/phactory
trimbletodd

यह सवाल है और यह जवाब अभी भी इस दिन के लिए वापस आ रहा है। आप अपने खुद के कांटे / समाधान को रोल करने के लिए रॉक करते हैं। इसलिए, आपको स्वीकृत उत्तर मिला है, सर।
शौकिया बरिस्ता

12

चूंकि मार्क का ब्लॉग ऑफ़लाइन है, इसलिए मैं उनकी टीम द्वारा लागू किए गए कुछ टूल का उल्लेख करूंगा:

कार्यात्मक परीक्षण: सेलेनियम
इकाई परीक्षण: सरलतम
बिल्ड सर्वर: जेनकिंस
प्रदर्शन बेंचमार्किंग: XDebug + Cacheindind

दो वर्षों के बाद से मैंने यह सवाल पूछा है कि मैंने कुछ अतिरिक्त टूल को TDD के दृश्य से लोकप्रियता हासिल की है। आजकल जब आप टेस्ट ड्रिवेन डेवलपमेंट (ड्रुपल संदर्भ में, निश्चित रूप से) की बात करते हैं तो एक ही सिक्के के दो पहलू होते हैं - फ्रंट-एंड टेस्टिंग और बैक-एंड टेस्टिंग।

यहाँ दो प्रस्तुतियाँ हैं जो नवीनतम Drupalcon पोर्टलैंड 2013 से इस मामले का प्रतिनिधित्व करती हैं:

नंबरों से विकास, परीक्षण बैकएंड।
जैस्मीन और फैंटमजेएस के साथ स्वचालित परीक्षण , फ्रंटेंड परीक्षण।

पहली प्रस्तुति इकाई या कार्यात्मक परीक्षण (सख्ती से बोलना) से संबंधित नहीं है, यह कोड गुणवत्ता को मापने के लिए उपकरणों के बारे में अधिक है। फिर भी, मुझे लगता है कि यह विषय से कुछ हद तक संबंधित है।


1
वाह! 2 साल बाद आने के लिए धन्यवाद बाद में हमें बताएं कि आपने क्या खोजा है! आप रॉक :)
चपबाबू

5

केवल एक चीज जो मुझे पता है कि योगदान मॉड्यूल के लिए, आप समस्या कतार में स्वचालित रूप से कमिट और पैच का परीक्षण सक्षम कर सकते हैं, http://drupal.org/node/689990 देखें । यह अभी भी कुछ हद तक अस्थिर है, खासकर अगर आपके पास निर्भरता है।

अधिकांश परियोजनाएं शायद बग संचालित विकास की तर्ज पर कुछ और कर रही हैं, जो मूल रूप से पहले एक परीक्षण लिखने के लिए नीचे आती हैं जब एक बग पाया गया था और फिर इसे ठीक करें। अगर सब पर ;)

मेरे व्यक्तिगत अनुभव से, ड्रॉडल में टीडीडी कठिन है, क्योंकि आप अक्सर सरलतम लेकिन एकीकरण परीक्षणों के साथ केवल (केवल) इकाई परीक्षण नहीं लिखते हैं, जहां आप पृष्ठ देखते हैं और प्रपत्र जमा करते हैं। इसलिए पहले से अच्छे परीक्षण लिखना कठिन हो सकता है। लेकिन शायद मैं ऐसा करने के लिए अभ्यस्त नहीं हूं :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.