2015-12-10 5 views
5

私はカバレッジを実行した結果、カバレッジのパーセンテージがどのように計算されているか把握できません。このexampleカバレッジはそのパーセンテージをどのように計算しますか?

enter image description here

それはブランチカバレッジを説明したが、例えば、カバレッジ比率については何も言いません。

更新:ここはpfind.pyの詳細は、次のとおりです。 enter image description here

+0

[* "コードのどの部分が実行されたかを監視し、実行された可能性のあるコードを識別するためにソースを分析します。" *(https://coverage.readthedocs.org /en/coverage-4.0.3/)テスト中に実行される可能性のある実行可能コードのパーセンテージであり、一般に1行ごとに測定されます。 –

+0

@JeremyBanksはい、コードカバレッジはどのようなものか分かりますが、パーセンテージはカバレッジされた行数やブランチ数とは関係ありません。 – thebjorn

+0

パーセントを再計算するために欠けている枝を見る必要があると思います。 –

答えて

5

coverageは、2つの可能な命令として各ブランチをカウントし、非分岐命令として彼らに同じ重みを与えています。枝あれば、あなたが見ることができるように

@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 

:この式の使用:コードからresults.pyを見てみると

(run+partial)/(statements+branches)

を、カバレッジ率はratio_covered機能から得られたデータと、pc_coveredで計算されますカバレッジが有効になっていると、各ブランチは2回、1回はステートメントとして、1回はブランチとしてカウントされます。

関連する問題