2008-12-04 4 views
13

पर यूनिट परीक्षण के लिए आयरनपीथन, हम जानते हैं कि पाइथन किसी भी संकलित भाषाओं पर बहुत अधिक उत्पादकता प्रदान करता है। हमारे पास सी # & में प्रोग्रामिंग है जो सी # में इकाई परीक्षण मामलों को लिखने की आवश्यकता है। यदि हम देखते हैं कि यूनिट परीक्षण के लिए हम जो कोड लिखते हैं वह मूल कोड से लगभग दस गुना अधिक है।सी #

यह IronPython के बजाय सी # में इकाई परीक्षण मामलों लिखने के लिए आदर्श विकल्प है? किसी भी शरीर ने ऐसा किया है? मैंने कुछ टेस्ट केस लिखे, वे अच्छे लगते हैं। लेकिन बालों वाले पॉइंट प्रबंधक स्वीकार नहीं करेंगे।

+0

अपने PHBoss .. अपने संस्करण सिर्फ टिप तराजू – Gishu

+2

"बालों नुकीले प्रबंधकों" :) एक महान वाक्यांश है! – babbageclunk

+0

वैसे भी हम IronPython में उन परीक्षणों या डेमो परीक्षणों पर एक नज़र डाल सकते हैं! – azamsharp

उत्तर

4

विल के जवाब अच्छा है - आप डेवलपर्स के लिए एक नया आवश्यकता शुरू कर रहे हैं।

इसके अलावा, जैसे उपकरण समर्थन क्या है? मैंने इनमें से कोई भी कोशिश नहीं की है, लेकिन मैं जानना चाहता हूं:

  • असफल इकाई परीक्षणों में डीबग करना कितना आसान है?
  • आईडीई से यूनिट परीक्षण चलाने के लिए कितना आसान है? (उदाहरण के लिए रीशेपर के साथ)
  • निरंतर बिल्ड सर्वर से यूनिट परीक्षणों को स्वचालित करना कितना आसान है?

यह हो सकता है कि ये सभी ठीक हैं - लेकिन आपको उन्हें जांचना चाहिए, और परिणामों को दस्तावेज करना चाहिए।

अन्य विकल्पों के साथ-साथ आयरनपीथन भी हैं - Boo काफी स्पष्ट विकल्प है।

2

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

+0

मैं नहीं दिख रहा है कि कैसे IronPython इकाई परीक्षण ... और कैसे उत्पादकता कूद ओपी के पूरी टीम के लिए पैमाने पर होगा .. लेकिन यह एक टीम निर्णय है .. अगर हर कोई इससे सहमत हैं और लाभ स्पष्ट कर रहे हैं के लिए सी # से अधिक स्कोर .. जाना ठीक आगे। – Gishu

+0

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

3

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

प्लस, अपने परीक्षण कोड के लिए आयरनपीथन का उपयोग करके, आप अपने प्रोजेक्ट के लिए कोड की कम लाइनों (एलओसी) के साथ समाप्त हो सकते हैं जिसका अर्थ है कि आपके यूनिट परीक्षणों को लंबे समय तक बनाए रखा जा सकता है और अनदेखा किया जा रहा है और/या त्याग दिया।

0

बहुत रोचक।

क्या होगा अगर आप IronPython (न केवल इकाई परीक्षण) के साथ अपने सभी कोड लिखने होगा? क्या आप लगभग 10 गुना कम कोड के साथ खत्म हो जाएगा?

शायद मैं IronPython भी सीखना चाहिए।

+0

सी # संकलित और तेज़ है लेकिन आयरनपीथन आम तौर पर धीमा है। – Krish

3

वास्तव में परीक्षण एक नई भाषा को एकीकृत करने की कोशिश करने के लिए एक महान अवसर है। अजगर की तरह बोली विशेष रूप से अच्छी तरह से चमक परीक्षण में, और यह एक कम जोखिम परियोजना की कोशिश करना है - सबसे खराब स्थिति बिल्कुल भी बुरा नहीं है।

जहाँ तक अजगर में किसी अन्य भाषा के परीक्षण के अनुभव के रूप में, मैं C और C++ सिस्टम इस तरह का परीक्षण किया है और यह उत्कृष्ट था। मुझे लगता है कि यह निश्चित रूप से एक शॉट के लायक है।

क्या जॉन कहते हैं सच है, हालांकि है - सामान्य रूप में अजगर, और विशेष रूप से IronPython के लिए टूलींग के स्तर, सी # की है कि निकट कहीं नहीं है।आपके पायलट में आपको कितना प्रभावित होगा।

6

पायथन यूनिटटेस्टिंग सी # कोड के लिए उत्कृष्ट है। हमारा ऐप पायथन में 75% और 25% सी # (पायथन.Net) है, और हमारे यूनिट परीक्षण 100% पायथन हैं।

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

0

मैं विल और जॉन के साथ जाना होगा ..

मैं पसंद करेंगे मेरी परीक्षण कोड मैं परीक्षण कर रहा हूँ के रूप में उसी भाषा में हो; यह कम संज्ञानात्मक संदर्भ स्विच का कारण बनता है। लेकिन शायद मैं मानसिक रूप से चुस्त नहीं हूं जैसा कि मैं एक बार था।

  • जॉन
1

मैं हाल ही में पुनः आकलन किया गया है mbUnit और NUnit में parameterised परीक्षण की खोज के बाद मेरे परीक्षण दृष्टिकोण। पहले, मैंने परीक्षण की संक्षिप्त प्रकृति और खोज की वजह से किसी भी परीक्षण को स्वचालित करने के तरीके के रूप में पाइथन को सबसे ज्यादा अनुशंसा की थी।

parameterised परीक्षण आप डेटा मानकों की एक सीमा के साथ परीक्षण जुड़नार अनुकूलित करने के लिए और इस तरह अपने सी # परीक्षण भी अजगर परीक्षण की तुलना में अधिक संक्षिप्त खत्म कर सकते हैं अनुमति देते हैं।

[TestCase(12, 3, 4)] 
[TestCase(12, 2, 6)] 
[TestCase(12, 4, 3)] 
[TestCase(12, 0, 0, ExpectedException = typeof(System.DivideByZeroException), 
     TestName = “DivisionByZeroThrowsExceptionType”)] 
[TestCase(12, 0, 0, ExpectedExceptionName = “System.DivideByZeroException”, 
     TestName = “DivisionByZeroThrowsNamedException”)] 
public void IntegerDivisionWithResultPassedToTest(int n, int d, int q) 
{ 
     Assert.AreEqual(q, n/d); 
}