2008-11-14 13 views
8

मैं वर्तमान में एक रेल परियोजना के लिए सी 0 कोड कवरेज विश्लेषण प्राप्त करने के लिए Rcov का उपयोग कर रहा हूं।क्या रूबी के लिए सी 1 कोड कवरेज विश्लेषण मौजूद है?

हालांकि, ये परिणाम व्यावहारिक रूप से अर्थहीन हैं- मेरे पास आरसीओवी के अनुसार 100% कवरेज है (क्योंकि इसमें केवल सी 0 विश्लेषण शामिल है) और मैंने अभी तक कार्यक्षमता के लिए परीक्षण मामलों में आधा लिखा है जो अब तक मौजूद है।

मुझे विजुअल स्टूडियो 2008 टीम में कोड कवरेज से उपयोगी परिणामों के लिए उपयोग किया जाता है, जिसमें सी 1 कवरेज है। क्या कोई उपकरण है जो रूबी के लिए समान कवरेज प्रदान करता है?

उत्तर

12

फिलहाल, रुबी के लिए कोई सी 1 कवरेज टूल नहीं हैं। वास्तव में, कोई आरसीओवी के अलावा कवरेज उपकरण नहीं हैं।

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

लेकिन केवल रूबिनीस के साथ रूबी समुदाय में कोड कवरेज टूल जैसे डायनामिक विश्लेषण टूल लिखना संभव होगा, जिससे रूबी समुदाय के एक बड़े हिस्से के लिए उपकरण लेखन सुलभ हो सके। मेरी आशा यह है कि, यह टूल विक्रेताओं के पर्याप्त वित्तीय समर्थन के साथ मिलकर (कई प्रमुख आईडीई विक्रेता या तो काम कर रहे हैं या पहले से ही रूबी आईडीई पेश कर चुके हैं, जिनमें कोडगियर (एक्स-बोरलैंड), इंटेलिजे, नेटबीन, ग्रहण, नीलमणि स्टील (स्टील में रूबी) विजुअल स्टूडियो के लिए) और यहां तक ​​कि माइक्रोसॉफ्ट) 200 9 में रूबी टूलींग स्पेस में तेजी से नवाचार की ओर अग्रसर होगा और हम सी 1, सी 2 कवरेज, एनपीएथ कॉम्प्लेक्टीटी, और अधिक बढ़िया प्रोफाइलिंग जैसी चीजें देखेंगे।

तब तक, मेरे पास एकमात्र विचार जावा टूल्स का उपयोग करना है। जेआरबीई लोग अपने जेनरेट किए गए बाइटकोड को जावा टूल्स द्वारा कम से कम घुसपैठ करने के लिए उचित जादू मेटाडेटा को उत्सर्जित करने का प्रयास करते हैं। तो, शायद JRuby के साथ जावा कवरेज टूल का उपयोग करना संभव है। हालांकि, मुझे नहीं पता कि वास्तव में यह काम करता है, न ही अगर यह काम करना है।

+0

क्या यह 2016 में अभी भी चीजों की स्थिति है? –

0

मुझे कोड कवरेज टूल के बारे में पता नहीं है, लेकिन रूबी में एक उत्परिवर्तन परीक्षक है जिसे हेक्ले कहा जाता है।

उत्परिवर्तन परीक्षण में कोड को परीक्षण और बदलने का समावेश होता है, यदि वे उत्परिवर्तन यूनिट परीक्षण विफल होने का कारण बनते हैं।

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

अगर कोड का परीक्षण किया जा रहा है तो संभवतः सिस्टम को नष्ट कर सकता है (उदाहरण के लिए फाइलों को हटाया जा सकता है) पर उत्परिवर्तन परीक्षण से बचा जाना चाहिए। आप a FAQ about heckle और a FAQ question mentioning rcov versus heckle पढ़ना चाह सकते हैं।

+0

यह आरएसपीईसी में बनाया गया है। Spec --help से, एक -H (या --हेकल) विकल्प होता है: "यदि सभी उदाहरण पास होते हैं, तो यह कम से कम कोड द्वारा पहचाने गए वर्गों और विधियों को बदल देगा और प्रत्येक उत्परिवर्तन के लिए सभी उदाहरण फिर से चलाएगा। इरादा यह है कि प्रत्येक उत्परिवर्तन के लिए, कम से कम एक उदाहरण * विफल होना चाहिए, और आरएसपीसी आपको बताएगा कि यह मामला नहीं है।कोड या तो कुछ :: मॉड्यूल, कुछ :: कक्षा या कुछ :: शानदार # विधि} होना चाहिए " – hgmnz

1

रिकॉर्ड के लिए, नेटबीन्स 7.0 में रूबी अंतर्निहित के लिए कोड कवरेज विश्लेषण है। मुझे कोई डॉक्स नहीं मिल रहा है कि यह सी 0 या सी 1 है या नहीं, लेकिन यह नजर रखने के लिए कुछ है।

+1

ई.एस .: नेटबीन्स सिर्फ दृश्यों के पीछे आरसीओवी का उपयोग कर रहा है। – srboisvert

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