EclipseとAntタスクの両方から同じテストを実行します。 eclipseから実行すると、すべてのテストが合格します。私はAntのJUnitのタスク、1を実行すると、単一のテストは、次の奇妙なエラーで失敗します。ユニットテストは、Antタスクから実行する場合にのみ失敗します
junit.framework.AssertionFailedError at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32) at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:423) at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:137) at unitests.mypackage.MyTestClass.myTestCase(Unknown Source)
原因となることができますか?
eclipseとAntが異なるバージョンのjunitを使用している可能性があることがわかりました。私のプロジェクトでは、junitはlibs/junit-4.10.jarにあり、Eclipseの.classpathファイルとjunitタスクのクラスパスの両方で参照されています。 あなたはここにAntのタスクを見ることができます:
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
<fileset dir="${src.dir}" includes="**/*.jar"/>
</path>
...
<target name="run-unit-tests" depends="compile,compile-unit-tests">
<mkdir dir="${junit.output.dir}"/>
<junit fork="yes" printsummary="yes" haltonfailure="no">
<classpath>
<path refid="classpath"/>
<fileset dir="${unit.tests.classes.dir}" includes="**/*.class"/>
</classpath>
<formatter type="xml"/>
<batchtest todir="${junit.output.dir}">
<fileset dir="${unit.tests.dir}">
<include name="**/*Test*.java"/>
</fileset>
</batchtest>
</junit>
<mkdir dir="${junit.report.dir}"/>
<junitreport todir="${junit.report.dir}">
<fileset dir="${junit.output.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${junit.report.dir}/html"/>
</junitreport>
</target>
のAntのバージョンは1.7.1であり、日食となりました。
編集:
は、最終的にJUnitののタスクに「fork="yes
を追加することによってそれを解決し、Eclipseのエクスポートオプションを使用してファイルを構築生成し、その後、生成されたファイルと私の間の違いを見て、それが見つかりませアイデア理由。フォークはしかし、問題を解決します。可能性の高い原因のようなAntの音の
わかりません。スタンドアロンのAntをインストールして代わりに使用することをお勧めしますか? – Artium
私はすでにビルドをコマンドラインから実行しており、クラスパス上のAnt jarファイルを参照していると仮定します(スタンドアロンAntの意味を理解できません)。 JUnitのバージョンが同じであることを確信しているので、Eclipseがクラスパス参照と同じバージョンのAntを使用していることを確認したいと思います。上記のリンクは、EclipseのAnt環境設定を示しています。問題がJUnitバージョンであると主張している同様のエラーを参照している投稿を見つけましたので、おそらく両方とも同じJUnitを使用していることを確認する価値があります:http://www.coderanch.com/t/96244/Testing/junit-exception –