2015-12-10 12 views
5

Ich habe dieses Ergebnis von laufenden Berichterstattung, und ich kann nicht für das Leben von mir herausfinden, wie die Abdeckung Prozentsätze berechnet werden ..?Wie berechnet die Deckung ihre Prozentsätze?

enter image description here

In diesem example erklärt es Zweigüberdeckung, aber sagt nichts über Deckungsprozentsätze für das Beispiel.

Update: hier sind die Details für pfind.py: enter image description here

+0

[* "Es überwacht Ihr Programm, merkt, welche Teile des Codes ausgeführt wurden, und analysiert dann die Quelle, um Code zu identifizieren, der ausgeführt werden konnte, aber nicht war." *] (Https://coverage.readthedocs.org /en/coverage-4.0.3/) Es ist der Prozentsatz von potenziell ausführbarem Code, der während Tests ausgeführt wird, im Allgemeinen pro Zeile gemessen. –

+0

@JeremyBanks ja, ich verstehe, was Codeabdeckung ist/tut, aber die Prozentsätze scheint keine Beziehung zu der Anzahl der Zeilen abgedeckt oder die Anzahl der Filialen ..? – thebjorn

+0

Ich denke, Sie müssen die fehlenden Zweige sehen, um die Prozentsätze neu zu berechnen. –

Antwort

5

coverage wird jeder Zweig als zwei mögliche Befehle zu zählen und ihnen das gleiche Gewicht wie nicht-verzweigende Anweisungen zu geben. Mit dieser Formel:

(run+partial)/(statements+branches)

Mit Blick auf results.py aus dem Code wird der Bedeckungsanteil in pc_covered berechnet, wobei die von ratio_covered Funktion erhaltenen Daten:

@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 

Wie Sie sehen können, wenn Zweig Abdeckung ist aktiviert jeder Zweig wird zweimal, einmal als eine Aussage und einmal als eine Niederlassung bilanziert.

Verwandte Themen