OpenCoverでの表現のブランチカバレッジ
-
27-10-2019 - |
質問
支店のカバレッジは次の声明で機能しますか?
最初の式には誤ったテストのみがあり、真実ではないテストのみがあるため、赤い指標を期待していました。
tax.Voided = P_tax.Amount == 1012312870000.42M || P_tax.Amount < 0.00M;
最初の式は常に偽で、2番目の式は時々真です:
解決
ReportGeneratorによる報告をOpenCover XML出力と混同しないでください。ただし、OpenCoverが独自のレポートビジュアルで作業を開始するまで、ReportGeneratorは現在最高です。
ここでの問題は、レポートツールが、シーケンスカバレッジのみのブランチカバレッジに基づいて(赤/緑)カバレッジを報告しないことです。
メソッド(レポートの一番上に要約されている)の分岐カバレッジの概要を確認する必要があります - 詳細については、メソッドのXMLレポートデータを見て、おそらくILと比較する必要があります(ここでOpenCoverは、カバレッジ情報を取得します)。
注:OpenCoverは、作成されたILであるすべてのコードを書いた言語を知りません。
他のヒント
カバレッジツールが理解できない場合、いくつかの興味深い「カバー可能な」エンティティを持つことができる 内部 行、その行にあるカバレッジエンティティがカバーされている場合、ラインがカバーされているというレポートが表示される可能性があります。
クラスファイルがこのように制限されているため、クラスファイルが制限されているため、クラスファイルには、部分行ではなく、クラスコードをソースラインに関連付ける情報のみが含まれているためです。
私たちの Javaテストカバレッジツール (およびテストカバレッジツールのファミリ性の他のメンバー)クラスコードファイルを機器にしないでください。むしろ、ソースコードを計装し、部分行情報(開始ライン/列、終了行/列)を正確に追跡します。
私たちのツールは、声明の個々の部分の報道を示すのに問題はありません。