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>