0

エラーを作成する手順は次のとおりです。

  1. Eclipse 内で単体テストを実行します (Cntrl-F11)。67 個すべてが成功し、そのように報告されます。
  2. Ant build.xml ファイルを使用して Cobertura タスクを実行し、カバレッジ レポートを生成します。単体テストが失敗したことを示すタスクが失敗します。
  3. Eclipse を使用して単体テストを再度実行しようとすると、次のエラーが表示されます。

Unsupported major.minor version 51.0

(これらの症状は、Eclipse 内で Project -> Clean を使用するまで持続します。)

私のCoberturaアリのタスクは次のとおりです。

<target name="report-test" description="Generate a test coverage report." depends="clean, compile">
        <taskdef resource="tasks.properties">
            <classpath>
                <pathelement location="${lib.dir}/cobertura-1.9.4.1/cobertura.jar" />
                <pathelement location="${lib.dir}/cobertura-1.9.4.1/lib/asm-3.0.jar" />
                <pathelement location="${lib.dir}/cobertura-1.9.4.1/lib/asm-tree-3.0.jar" />
                <pathelement location="${lib.dir}/cobertura-1.9.4.1/lib/log4j-1.2.9.jar" />
                <pathelement location="${lib.dir}/cobertura-1.9.4.1/lib/jakarta-oro-2.0.8.jar" />
            </classpath>
        </taskdef>
        <cobertura-instrument todir="${build.dir}/cobertura-instrument">
            <fileset dir="${build.dir}">
                <include name="**/*.class"/>
            </fileset>
        </cobertura-instrument>
        <junit printsummary="yes" fork="true" haltonfailure="yes" showoutput="yes">
            <classpath location="${build.dir}/cobertura-instrument"/>
            <classpath location="${build.dir}"/>
            <classpath refid="classpath.test" />
            <sysproperty key="net.sourceforge.cobertura.datafile" file="cobertura.ser"/>
            <formatter type="xml" />
            <batchtest todir="doc/junit">
                <fileset dir="${test.dir}" />
            </batchtest>
        </junit>
        <cobertura-report srcdir="${src.dir}" destdir="doc/coverage" format="xml" />
        <delete file="cobertura.ser"/>
    </target>
4

1 に答える 1

2

Coberatura は Eclipse の Java バージョンを切り替えていません。

実際に行ったことは、Eclipse の実行に使用しているバージョンよりも新しいバージョンの Java を使用してクラスを再コンパイルすることです。Eclipse はこれらの .class ファイルをロードできません。

短期的な解決策は、現在行っているように、Coberatura を実行した後に Eclipse でプロジェクトをクリーンアップして再構築することです。

長期的には、Ant ビルドと同じ Java バージョンを使用して実行するように Eclipse を変更するか、「.class」ファイルを Eclipse ワークスペースに書き込まないように Ant ビルド ファイルを変更する必要があります。または両方... Eclipseワークスペースに何か他のものを書き込んでいると、他の問題も発生します。

于 2013-01-22T23:47:08.090 に答える