2011-09-12 9 views
2

私はWindows XPでCygwinを使用しています。クラスパスエントリをコーディングせずにAntにJUnitを使用させようとしています。 JUnitのドキュメントでは、次のことができます。AntはJUnit jarをlibディレクトリに認識しませんか?

ANT_HOME/libにjunit.jarとant-junit.jarの両方を入れてください。

アクションでのJUnitの私のハンディダンディコピーは言う:

あなたは明示的にクラスパスにJUnitのJARを追加しないことに気づいたかもしれません。 Antをインストールすると、junit Antタスクを使用するためにJUnit JARファイルが$ {ANT_HOME}/libディレクトリにコピーされたことに注意してください。 junit.jarは既にクラスパス上にあるため、テストをコンパイルするためにjavacタスクで指定する必要はありません。

$ ANT_HOMEがAntインストールディレクトリに設定されています。 libサブディレクトリには、ant-junit.jar(Antでインストール)とjunit-4.9.jar(私のコピー)があります。オッケー、そう?しかし、テストコンパイルのステップは失敗します:

[javac] Compiling 1 source file to E:\tools\ctg\bin\test 
[javac] E:\tools\ctg\src\test\TestAll.java:3: package org.junit does not exist 
[javac] import org.junit.*; 

等です。私はjunit-4.9.jarの名前をjunit.jarに変更しようとしました。喜びはありません。私はjarファイルを覗いて、パッケージがその中に存在するのを見た。実際、Antクラスパスにその非常にjarファイルを明示的に含めると、コンパイルは正常に動作します。

ブリー。何が間違っているかもしれないかについてのあらゆる考え?ありがとう。

EDITは:JUnitのバイナリがコメントアウトされていることを

<path id="classpath"> 
    <pathelement location="${app-bin}"/> 
    <pathelement location="${test-bin}"/> 
    <!--pathelement location="${junit-bin}"/--> 
</path> 

<target name="compile-test" depends="compile-app"> 
    <javac srcdir="${test-src}" 
      destdir="${test-bin}" 
      source="${java}" 
      target="${java}" 
      debug="on" 
      includeantruntime="false"> 
     <compilerarg value="-Xlint"/> 
     <classpath refid="classpath"/> 
    </javac> 
</target> 

注:要求することで、ここでのjavacターゲットです。私の目標はそれを削除してコンパイル作業をすることです。

+0

javacターゲットを投稿できますか? – oers

+0

javacターゲットが質問テキストになりました。 – Singlestone

答えて

6

includeantruntime="false"伝えant to not include the libsをjunit.jarをするために名前を変更、すなわち。

javacターゲットに与えるクラスパスにjarを追加する必要があります。または、プロパティをtrueに設定します。

+0

ハ!もちろん。完璧。私は値を "true"に変更し、すぐに正常に動作しました。 */facepalm/*ありがとうございます。 – Singlestone

+0

これは理解するのにとても時間がかかりました。 – naugler

0

junit jarファイル名からバージョン番号を削除してみます。
はJUnitの-4.9.jarは、コンパイルのためのlibディレクトリに

+0

私はそれをしました。うまくいきませんでした。 – Singlestone

関連する問題