2010-08-10 14 views
11

मेरे वर्तमान रूबी ऑन रेल्स परियोजना पर rcov (विशेष रूप से, relevance rcov के माध्यम से परीक्षण करता है, और हम एक बहुत ही उच्च स्तर है (हम निर्माण असफल अगर हम < 95% कोड कवरेज) के साथ।Rcov कवरेज परिवर्तन काफी -xrefs

हम इस परीक्षण करने के लिए निम्न आदेश का उपयोग: मैं कुछ कोड है कि rcov रिपोर्ट Homever में हरे (होने रन) पंजीकृत करता पाया

rcov_cmd = "rcov --rails --text-summary \ 
      --include #{included_dirs} \ 
      --exclude #{excluded_dirs} \ 
      --aggregate #{coverage_dir}/coverage.data \ 
      --output #{coverage_dir} \ 

आज, मैं साबित कर सकते हैं कि इस कोड रन नहीं मिल रहा है (मैं बढ़ा समारोह की शुरुआत में एक अपवाद, और मेरे यूनिट परीक्षण पास)

मैंने कुछ शोध किया और आरसीओवी के लिए --xrefs ध्वज मिला, जिसे मैंने सोचा था कि आरसीओवी रिपोर्ट में प्रत्येक पंक्ति के लिए सभी कॉलर्स जोड़ देंगे। (नोटिस जोड़ा --xrefs ध्वज)

rcov_cmd = "rcov --rails --text-summary --xrefs \ 
     --include #{included_dirs} \ 
     --exclude #{excluded_dirs} \ 
     --aggregate #{coverage_dir}/coverage.data \ 
     --output #{coverage_dir} \ 

:

मैं करने के लिए rcov आदेश बदल दिया है।

अतिरिक्त कॉलसाइट जानकारी के बजाय, मेरे पास मेरा परीक्षण कवरेज 96% से 48% तक है।

क्या --xrefs विश्लेषण के प्रकार को कैसे बदलता है rcov करता है? (मैंने सोचा कि यह सिर्फ कॉलसाइट जानकारी इकट्ठा करेगा)। यह पहली कमांड से अलग/बेहतर कैसे है? (मैं इकाई परीक्षण कवरेज ड्रॉप देखा है एक असफल इकाई परीक्षण हो, तो, और मुझे पता है कि कवरेज प्रतिशत वहाँ समय में कोई त्रुटि है, तो छोड़ सकते हैं, लेकिन यह मेरे लिए अच्छा लग रहा है)

+0

क्या आपने यह निर्धारित करने के लिए केवल '- कॉलसाइट्स' और ''xrefs' के साथ प्रयास किया है कि यह वास्तव में शामिल कॉलसाइट जानकारी है जो अंतर पैदा कर रहा है? थोड़ा सा समस्या कम हो सकती है। – Shadwell

+0

मैंने --xrefs और --callsites को प्रतिस्थापित किया और परीक्षण कवरेज में एक ही बूंद देखी – RyanWilcox

उत्तर

1

rcov manual से:

--[no-]callsites 
    Show callsites in generated XHTML report. (somewhat slower; disabled by default) 
--[no-]xrefs 
    Generate fully cross-referenced report. (includes --callsites) 

Rcov CallSiteAnalyzer Class से

A CallSiteAnalyzer can be used to obtain information about: 

    * where a method is defined ("defsite") 
    * where a method was called from ("callsite") 

होने इस rcov का विश्लेषण अब निष्पादन की लागत में और अधिक सटीक कवरेज में जानकारी प्रदान कर सकते हैं।

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