EclEmmaが正しくインストールされていることを確認するための簡単なサンプルコードを書きました。私は100%のカバレッジを得ていません。理由を理解できません。強調表示は、クラス名と関係があることを示しています。ここに私のコードは、対応するJUnitテストで、だ、EclEmmaがそれを強調方法:EclEmmaカバレッジレーティングが100%未満のコードは完全にカバーできますか?
カバレッジの結果は、両方の実際の方法は思えにもかかわらず、Arithmetic
で3つの命令が打たれていないことを示しています私はthe EclEmma documentation about basic block coverageを読んだ
が、私はよ:完全に覆われますまだ混乱しています。どの基本ブロックが見逃されているのかよく分かりません。最初は、EclEmmaがクラスのバイトコードを無視している可能性があると考えましたが、ArithmeticTest
はうまく処理されているようです。
私は2つの密接に関連した質問がある:
- これは私がEclEmmaに構成/インストール方法に問題があることを示していますか?
- 完全にカバーされたコードのEMMAカバレッジレーティングは100%高いが、そうであれば、どのように機能するのですか?
実際には、「テキストのブロック」があります。ただ空です。バイトコードでは、デフォルトのコンストラクタがEclEmmaによって赤でマークされた行にあります。それをカバーして緑色で表示させるには、コンストラクタを呼び出すだけでよい: 'new Arithmetic()'。もちろん、ここでの正しいことは、クラス内に 'private'デフォルトのコンストラクタを宣言することです。 –