0

単体テストにJUnitを使用するプロジェクトがあります。問題は、Eclipseからプロジェクトをコンパイルして実行しようとすると、すべてがうまく機能することですが、Antを使用してコンパイルしようとすると、JUnitの関数(など)を認識しないというエラーが大量に発生しますtest()。プロジェクトフォルダ内にコピーしましjunit.jarた。クラスパスは「./」ですが、それでも機能しません。誰かがこれを成し遂げるために私が何をすべきかについての考えを持っていますか?

4

1 に答える 1

1

テストコードをコンパイルするときは、JUnitjarがクラスパスにあることを確認する必要があります。他のすべての依存関係に加えて、以前にコンパイルしたクラスのクラスパスも必要になります。

これがあなたの通常のコードをコンパイルした方法だと言ってください:

<property name="main.lib.dir"   value="???"/>
<property name="junit.jar"      value="???"/>

<target name="compile"
    description="Compile my regular code">
    <javac srcdir="${main.srcdir}"
        destdir="${main.destir}">
        <classpath path="${main.lib.dir}"/>
    </javac>

コードが依存しているすべてのjarファイルを含むディレクトリがあることに注意してください。これは${main.lib.dir}です。私のクラスはにコンパイルされていることに注意してください${main.destdir}。また、に実際のJUnitjarを指すプロパティがあることに注意して${junit.jar}ください。まだ使っていません。

次に、テストクラスをコンパイルします。

<target name="test-compile"
    description="Compile my JUnit tests">
    <javac srcdir="${test.srcdir}"
        destdir="${test.destdir}">
        <classpath path="${main.lib.dir}"/>
        <classpath path="${main.destdir}"/>
        <classpath path="${junit.jar}"/>
    </javac>

クラスパスに次の3つの項目があることに注意してください。

  1. 私のコンパイルされたコードが依存していたjarファイル。
  2. 非テストJavaコードをコンパイルしたディレクトリ
  3. そして、JUnitjar自体。

テストクラスをコンパイルした後、<junit>タスクを使用してテストを実行できます。

<junit fork="true"
    includeantruntime="true">
    <formatter .../>
    <batchtest todir="${test.output.dir}"/>
    <classpath="${test.destdir}"/>
</junit>
于 2013-01-11T21:24:03.690 に答える