0

Ant スクリプトに問題があります。でjunit testを実行する必要がありますant run

私の現在のスクリプトは次のようになります。

<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="doc" location="doc"/>
<property name="dist" location="dest"/>
<property name="lib" location="lib"/>
<property name="app" value="${ant.project.name}.jar"/>

<presetdef name="javac">
    <javac includeantruntime="false"/>
</presetdef>

<target name="clean">
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
</target>

<target name="compile" depends="clean" description="Compile">
    <mkdir dir="${build}"/>
    <javac srcdir="${src}"
           destdir="${build}" 
           classpath="${lib}/junit-4.10.jar:${lib}/swing-layout-1.0.4.jar:${src}">
    </javac>
    <copy todir="${build}/checkers">
        <fileset dir="${lib}">
            <include name="resources/**" />
        </fileset>
    </copy>
</target>
<target name="run" depends="compile">
    <echo>Running the junit tests...</echo>
    <junit showoutput="no" fork="no">
        <classpath>
            <pathelement location="${build}"/>   
            <pathelement path="${build}:${lib}/junit-4.10.jar"/>
        </classpath>
        <formatter type="plain" usefile="false" />
        <test name="checkers.CheckersTest"/>
    </junit>
</target>

私の Linux ボックスでは、テストは正常に実行され、すべてが良好に見えます。しかし、私の Windows では、Ant は次のように表示します。

java.lang.NoClassDefFoundError: junit/framework/TestListener

しかし、デバッグモードのAntは、提供されたjunit-4.10.jarファイルからTestListener.classをロードしたと私に言いました。

4

1 に答える 1

2

この回答を試してくださいhttp://youtrack.jetbrains.com/issue/TW-4882 :

To fix the problem you should either use fork="true" attribute for 
junit task (in this case classpath will be created correctly), or 
to copy junit.jar to ANT_HOME/lib (to ensure correct class loading). 

このhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=36198のバグもあります。最後のコメントは言うJUnit is available in Ant via the org.eclipse.ant.optional.junit fragment

于 2013-04-09T04:53:45.107 に答える