5

私はコード カバレッジに EMMA ツールを使用していますが、最善の努力にもかかわらず、EMMA は元の .java ファイルを参照して行ごとにカバレッジを生成することを拒否しています。

ANT を使用してコードをビルドし、debug を true に設定します。.emma ファイルが正しく生成およびマージされているように見えるため、EMMA がカバレッジを測定していることはわかっています。レポートは、高レベルのメソッド カバレッジをパーセンテージで表示できます。

しかし、なぜ .java ファイルが表示されないのでしょうか? 私が得るのは次のとおりです:[ソースファイル 'a/b/c/d/e/f/code.java'がソースパスに見つかりません]

4

4 に答える 4

6

sourcepathあなたのreport要素に設定していますか?

<report>
    <sourcepath>
        <pathelement path="${java.src.dir}" />
    </sourcepath>
    <fileset dir="data">
        <include name="*.emma" />
    </fileset>

    <txt outfile="coverage.txt" />
    <html outfile="coverage.html" />
</report>
于 2008-10-31T16:07:33.783 に答える
2

レポートbuild.xmlを生成する部分を投稿していただけますか? EMMA問題のようにreport sourcepath聞こえます。

report sourcepathJavaソースを指す必要があります。

EMMA リファレンスのsourcepathを参照してください。これはパスのような構造にすることができるため、複数のソース ディレクトリを含めることができます。

いつものように、ANT では:

  • 可能な限り最小のbuild.xmlを実行します-verbose
  • -debugさらに詳しい情報については。
于 2008-10-31T16:15:01.800 に答える
1

私は同じ問題に遭遇しました。しかし、sourcepath を設定するときに、Java ファイルの場所ではなく、唯一のディレクトリ レベルに設定する必要があることがわかりました。クラスパスに似ています

于 2012-05-03T02:36:37.270 に答える
0

1 つの特定のディレクトリ{java.src.dir}を指す必要があります。src

複数のプロジェクトをコンパイルしているため、これは単一の src ディレクトリではありません。それぞれ独自の build.xml ファイルがあります。

これは、すべてのカバレッジ レポートを生成する部分だと思います。

  <target name="emma.report" if="use.emma">
   <emma enabled="true">
     <report sourcepath="${test.reports.dir}">
       <!--  collect all EMMA data dumps (metadata and runtime):   --> 
       <infileset dir="${test.data.dir}" includes="*.emma" /> 
       <html outfile="${test.reports.dir}/coverage.html" /> 
     </report>
   </emma>
 </target>

編集: sourcepath を変更して、src ディレクトリの 1 つを直接指すようにしました。それが機能するかどうかを確認してください。

于 2008-10-31T16:22:28.590 に答える