2010-05-30 19 views
6

मैं एक वर्ग है कि के साथ शुरू होता है:eclEmma - कक्षा शीर्षलेख पर पूर्ण कोड कवरेज?

public class GeneralID implements WritableComparable<GeneralID>{ 
... 
} 

और एक और है जो:

public class LineValuesMapper<KI, VI, KO, VO> extends Mapper<LongWritable, Text, Text, IntWritable>{ 
... 
} 

इन कक्षाओं के सभी तरीकों कवर कर रहे हैं। लेकिन उनके हेडर नहीं। दोनों कक्षाओं के शीर्षलेख को एलेक्मा के साथ पीले रंग के रूप में चित्रित किया जाता है।

इन कक्षाओं के लिए कवर निर्देश हैं:

Element Coverage Covered Instructions Total Instructions 
LineValuesMapper.java 97.3 % 145 149 
GeneralID.java 99.3 % 566 570 

क्या मैं पूरी तरह से वर्ग हैडर कवर करने के लिए कर सकते हैं?

+0

EclEmma आपको संपादक के नीचे छोटे पैन में भी कवरेज नंबर देना चाहिए। वे क्या कहते हैं? क्या आप अपने नमूना वर्ग के लिए संख्याएं (ब्लॉक, रेखाएं, निर्देश इत्यादि) पोस्ट कर सकते हैं? – jasonmp85

+0

इसके अलावा, इन दोनों वर्गों में पैरामीटरयुक्त प्रकार लागू या विस्तारित किया गया है। क्या यह व्यवहार कक्षाओं में प्रदर्शित होता है जो जेनिक्स का उपयोग अपनी परिभाषाओं में नहीं करते हैं? – jasonmp85

+0

यह केवल इन दो वर्गों में होता है जो पैरामीटरयुक्त प्रकारों को विस्तार/कार्यान्वित करते हैं। मेरे पास एक ही स्थिति में अन्य कक्षाएं हैं जो पूरी तरह से ढकी हुई हैं। अंतर यह है कि अन्य वर्ग पैरामीटर प्रकार मेरे द्वारा परिभाषित किए गए हैं। इन प्रकारों को हडोप एपीआई में परिभाषित किया गया है। मैंने ऊपर दिए गए मेरे प्रश्न में कवर किए गए निर्देश जोड़े हैं। –

उत्तर

3

जेनेरिक सुपरक्लास को बढ़ाने या जेनेरिक इंटरफेस को लागू करने वाले वर्गों के लिए, कंपाइलर सिंथेटिक पुल विधियों जोड़ सकता है। इसी तरह के मामले के the results of looking at the bytecode देखें।

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

+0

मैं इस जवाब के लिए पहले अपने दिमाग को तोड़ रहा था। अच्छी पकड़। एम्मा के पास यह विकल्प हो सकता है, लेकिन मुझे याद नहीं है कि एक्लेम्मा ग्रहण के भीतर एम्मा को चलाते समय इसका उपयोग करता है या नहीं। – jasonmp85

+2

इन पंक्तियों के साथ, एम्स के पास एम्मा (http://padcom13.blogspot.com/2009/12/code-coverage-and-enum-types.html) के साथ कुछ समस्याएं भी हैं। शायद फोर्क एक समान कामकाज मिल सकता है? – jasonmp85

+0

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

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