Я не могу понять, почему я получаю это исключение из моего файла ant build.xml. Я проверил, и все в classpath. Почему это должно быть так сложно?!
В прошлом у меня были проблемы с Ant, и кажется, что это всегда что-то, связанное с classpath. Я указываю на 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 и пытается запустить тест, но почему он не может найти мой тестовый класс? Я указываю на папку с скомпилированным тестовым классом. Так что я знаю, что джунит, по крайней мере, находится на пути к классу Ант, но ClassNotFound меня озадачивает.
Возможно, есть идеи? Большое спасибо!