2015-12-10 13 views
5

मेरे पास यह परिणाम कवरेज चलाने से है, और मैं अपने जीवन के लिए यह नहीं समझ सकता कि कवरेज प्रतिशत की गणना कैसे की जाती है ..?कवरेज अपने प्रतिशत की गणना कैसे करता है?

enter image description here

इस example में यह शाखा कवरेज बताते हैं, लेकिन उदाहरण के लिए कवरेज प्रतिशत के बारे में कुछ नहीं कहा।

अद्यतन: यहाँ pfind.py के लिए विवरण हैं: enter image description here

+0

[* "यह आपके प्रोग्राम पर नज़र रखता है, यह नोट करते हुए कि कोड के कौन से हिस्सों को निष्पादित किया गया है, फिर स्रोत को पहचानने के लिए स्रोत का विश्लेषण किया गया था लेकिन यह नहीं था।" *] (Https://coverage.readthedocs.org /en/coverage-4.0.3/) यह संभावित रूप से निष्पादन योग्य कोड का प्रतिशत है जिसे परीक्षण के दौरान निष्पादित किया जाता है, आमतौर पर प्रति पंक्ति मापा जाता है। –

+0

@ जेरेमीबैंक्स हां, मैं समझता हूं कि कोड कवरेज क्या है/करता है, लेकिन प्रतिशत में कवर लाइनों की संख्या या शाखा गिनती से संबंधित कोई संबंध नहीं है ..? – thebjorn

+0

मुझे लगता है कि प्रतिशत की पुन: गणना करने के लिए आपको लापता शाखाओं को देखने की आवश्यकता है। –

उत्तर

5

coverage दो संभावित निर्देश के रूप में प्रत्येक शाखा की गिनती और उन्हें गैर शाखाओं में निर्देश के रूप में ही वजन दे रहा है। इस सूत्र का उपयोग करना:

(run+partial)/(statements+branches)

कोड से results.py को देखते हुए, कवरेज प्रतिशत, pc_covered में गणना की जाती है डेटा ratio_covered समारोह से प्राप्त के साथ:

@property 
def ratio_covered(self): 
    """Return a numerator and denominator for the coverage ratio.""" 
    numerator = self.n_executed + self.n_executed_branches 
    denominator = self.n_statements + self.n_branches 
    return numerator, denominator 

आप देख सकते हैं, शाखा अगर कवरेज सक्षम है प्रत्येक शाखा को एक बार कथन के रूप में और एक शाखा के रूप में दो बार जिम्मेदार ठहराया जाएगा।

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