2016-02-16 13 views
12

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

उत्तर

7

कोबर्टुरा ASM का उपयोग करता है जो एक सामान्य उद्देश्य बाइटकोड मैनिपुलेशन और विश्लेषण ढांचा है। जावा कोड की प्रत्येक पंक्ति पर मौजूदा वर्गों में 3 लाइनें शामिल की गई हैं जो रिपोर्ट के लिए चीजों की गिनती करती हैं। जब कोबर्टुरा को आपके क्लासपाथ में शामिल किया गया है और सही तरीके से कॉन्फ़िगर किया गया है और आप अपने यूनिट परीक्षण निष्पादित करते हैं, तो यह cobertura.ser नामक डेटाफाइल उत्पन्न करेगा जिसका उपयोग xml या html रिपोर्ट बनाने के लिए किया जाता है।

बेसिक उपयोग: Maven के साथ: http://www.mojohaus.org/cobertura-maven-plugin/usage.html

+0

पर आपके उत्तर के लिए धन्यवाद मिल सकता है। हालांकि, मुझे समझ में नहीं आता - हम जूनिट को कोबर्टुरा नहीं चलाते हैं। इन 3 लाइनों से जोड़ा गया कोड रिपोर्ट कैसे उत्पन्न की जाती है? क्या यह 3 पंक्तिबद्ध कोड cobertura.ser को लिखता है? –

+0

जब आप अपने यूनिट परीक्षण चलाते हैं तो कोबर्टुरा स्वचालित रूप से वाद्य यंत्र होता है। जब आप इसे अपने पीओएम (अगर मेवेन का उपयोग करते हैं) या build.xml फ़ाइल (अगर एएनटी का उपयोग कर रहे हैं) में कॉन्फ़िगर किया गया है, तो यह स्वचालित रूप से होता है। आप इसे सीधे नहीं चला रहे हैं लेकिन सही तरीके से कॉन्फ़िगर किए जाने पर इसे मेवेन प्लगइन के माध्यम से बुलाया जा रहा है। एचटीएच – Griff

2

Cobertura अतिरिक्त बयानों के साथ बाईटकोड instrumenting लॉग इन करने की जो लाइनें हैं और के रूप में टेस्ट स्वीट कार्यान्वित तक पहुँच नहीं किया जा रहा है द्वारा परीक्षण की निगरानी करता है।

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

Maven का उपयोग कर इस पोम में विन्यस्त किया जा सकता:

<taskdef classpathref="cobertura.classpath" resource="tasks.properties"/> 

ant- के लिए संदर्भ: यह build.xml फ़ाइल में taskdef बयान के साथ विन्यस्त किया जा सकता

चींटी का उपयोग कर
<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <version>2.6</version> 
     <configuration> 
      <formats> 
       <format>html</format> 
       <format>xml</format> 
      </formats> 
     </configuration> 
    </plugin> 

कोबर्टुरा एकीकरण https://github.com/cobertura/cobertura/wiki/Ant-Task-Reference

+0

आपके उत्तर के लिए धन्यवाद। हालांकि सवाल यह नहीं है कि कैसे मेवेन या चींटी के साथ कोबर्टुरा को चलाने के लिए। सवाल यह है कि कैसे कोबर्टुरा जूनिट के साथ सहयोग करता है। –

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