2

EMMAに問題があり、1つを除くすべてのさまざまなJavaプロジェクトを正しくカバーしています。ANTスクリプトが正しいように見えるのに、なぜこれが発生するのか、私は戸惑っています。次の期待される出力が与えられます。

 [echo] c:\cc_local_home\emmadata\ProjectName
[instr] processing instrumentation path ...
[instr] instrumentation path processed in 1876 ms
[instr] [84 class(es) instrumented, 0 resource(s) copied]
[instr] metadata merged into [c:\cc_local_home\data\2008-11-17_14.35.19\coverage.emma] {in 62 ms}

上記は、次のANTスクリプトによって生成されます。

<target name="emma" depends="init" if="use.emma">
  <echo message="${emma.bin}" /> 
  <emma enabled="true">
    <instr instrpath="${test.bin}" destdir="${emma.bin}" metadatafile="${test.data.dir}/coverage.emma" merge="true">
      <filter excludes="*Test*,*test*" /> 
      <filter excludes="*Exception" /> 
      <filter excludes="*AppConstants" /> 
    </instr>
  </emma>
</target>

JUnitテストが実行された後、以下がログに記録されます。

emma.report:[レポート]入力ファイルを処理しています...
[レポート]16ミリ秒で読み取られてマージされた1つのファイル
[レポート]何もしません:どのデータファイルにもランタイムカバレッジデータが見つかりません

また、カバレッジレポートは生成されません。

Coverage.emmaファイルが正しくリンクされていると確信しているのに、EMMAがコードをカバーしていないのはなぜですか?

タスクは次のemma.reportようになります。

<target name="emma.report" if="use.emma">
  <emma enabled="true">
    <report sourcepath="${test.reports.dir}"> 
      <infileset dir="${test.data.dir}" includes="*.emma" /> 
      <html outfile="${test.reports.dir}/coverage.html" /> 
    </report>
  </emma>
</target>
4

4 に答える 4

1

<emma.report>要素はどのように見えますか?

この正確なメッセージについては、このFAQを参照してください: <report></report> が「何もすることはありません: データ ファイルにデータが見つかりません」と言って、何も生成せずに終了するのはなぜですか?

そして、いつものようにAnt、電源を入れ-verboseて出力を再確認します。

于 2008-11-17T16:00:29.603 に答える
1

JUnit ターゲットがインストルメント化されたコードを実行していて、インストルメント化されていないコード (カバレッジ データを生成しない) を実行していないことを確認します。

于 2008-11-17T19:15:09.303 に答える
0
<target name="emma.report" if="use.emma">
  <emma enabled="true">
    <report sourcepath="${test.reports.dir}"> 
      <infileset dir="${test.data.dir}" includes="*.emma" /> 
      <html outfile="${test.reports.dir}/coverage.html" /> 
    </report>
  </emma>
</target>
于 2008-11-17T18:01:51.917 に答える