1

EMMA の動作に関して..EMMA がソース コードに関してコードの行をどのようにマークするか知りたいです。覆われた/マークされた行のみを抽出する方法はありますか?

4

3 に答える 3

4

EMMA はクラス ファイルの計測を行い、計測コード (追加のバイト コード) を使用してカバレッジ レポートを生成します。

ソースファイルでは機能しません。もちろん、クラス ファイルには「デバッグ情報」、特に行番号が必要です。しかし、それは通常の場合です。

アップデート

html レポート ジェネレーターだけが、カバレッジ結果を行番号に一致させることができるようです。テキストまたは xml レポートについて同じ詳細を取得できませんでした。

簡単な解決策として、html レポートを作成し、それらを html パーサー (xml パーサー同様に機能する可能性があります) で解析し、html テーブルから日付を抽出します。

または、オプションを指定して emmarun を実行-rawし、メタデータとカバレッジ ファイルを確認します。

于 2012-02-08T17:07:43.857 に答える
0

私には、「カバーされた行」ではなく、ある行/列で始まり、他の行/列で終わり、コードの内部ブロック用の穴が中央にある「カバーされたコードブロック」が必要なようです。

行番号のみに基づいてカバレッジデータを提供するシステムは、この種の情報を提供しません。コードを解析してこのすべてのデータを抽出することにより、行番号からこの情報を再生成できる場合があります。それは見た目よりもはるかに多くの作業です。また、同じ行に複数のステートメントがある場合は機能しません。

私たちのJavaTestCoverageツールは、私が提案する形式で「カバーされたコードブロック」を収集します。これは、コードブロックと内部ブロックを表示するUIディスプレイで確認できます。

この「コードブロック」情報と、プローブと対応するコードブロック間のマッピングを含む、ツールによってエクスポートされたファイルがあります。必要なものは、そのファイルから非常に簡単に抽出できます。

于 2012-02-29T14:08:04.437 に答える
0

Emma のコード ベースを調べて、その機能を正確に判断する必要があると思います。 http://emma.sourceforge.net/

于 2012-02-08T17:59:59.307 に答える