ant build.xmlファイルからこの例外が発生する理由がわかりません。私はチェックし、すべてがクラスパスに入っています。なぜこれはとても複雑でなければならないのですか?antのjunitタスクで別のjava.lang.ClassNotFoundExceptionが発生する
私は過去にAntに問題がありました。それは常にクラスパスに関連しているようです。私は両方の方法を使用してjunit.jarを指しています:eclipse内:window-> preferences-> ant-> runtime-> Ant Home-> Add External Jarsとbuild.xmlスクリプト内。今回、Antはjunitタスクでテストクラスを見つけることができません。私はこのクラスを指している方法に何か問題がありますか?
<target name="init">
<property name="sourceDir" value="src"/>
<property name="outputDir" value="build" />
<property name="junitLocation" value="C:\...\org.junit4_4.3.1\junit.jar" />
</target>
<target name="clean" depends="init">
<delete dir="${outputDir}" />
</target>
<target name="prepare" depends="clean">
<mkdir dir="${outputDir}" />
</target>
<target name="compile" depends="prepare">
<javac srcdir="${sourceDir}" destdir="${outputDir}" classpath="${junitLocation}"/>
</target>
<path id="classpath">
<pathelement location="${outputDir}" />
<pathelement location="${junitLocation}" />
</path>
<target name="testApplication" depends="compile">
<echo>Running the junit tests...</echo>
<junit fork="yes" haltonfailure="yes">
<test name="my.package.MyTest" />
<formatter type="plain" usefile="false" />
<classpath refid="classpath" />
</junit>
</target>
私は常に取得しています:
どうやら[junit] Testsuite: my.package.MyTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] Caused an ERROR
[junit] my.package.MyTest
[junit] java.lang.ClassNotFoundException: my.package.MyTest
[junit] at java.net.URLClassLoader$1.run(Unknown Source)
[junit] at java.security.AccessController.doPrivileged(Native Method)
[junit] at java.net.URLClassLoader.findClass(Unknown Source)
[junit] at java.lang.ClassLoader.loadClass(Unknown Source)
[junit] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[junit] at java.lang.ClassLoader.loadClass(Unknown Source)
[junit] at java.lang.ClassLoader.loadClassInternal(Unknown Source)
[junit] at java.lang.Class.forName0(Native Method)
[junit] at java.lang.Class.forName(Unknown Source)
BUILD FAILED
を、Antはjunit.jarを見つけて、テストを開始しようとしたが、なぜそれが私のテストクラスを見つけることができませんか?私はコンパイルされたテストクラスを持つフォルダを指します。だから私はジュニットが少なくともAntのクラスパスにいることを知っていますが、ClassNotFoundが私を困惑させます。
おそらく何ですか?どうもありがとう!
ちょうど確認しています - ./build/my/package/MyTest.classを参照してください。あなたはそれが適切に構築されると確信していますか? – duffymo
うん、私はコンパイルされたクラスを見ることができる、正しいディレクトリで、そこに問題なし – denchr