Folks:
I'm having trouble using classpath refs with the Junit target.
Here's a build.xml file that works:
<project name="AntTest" default="compile" basedir=".">
<!-- global properties -->
<property name="src" value="source" />
<property name="build" value="build" />
<property name="dist" value="dist" />
<target name="prepare">
<tstamp/>
<mkdir dir="${build}" />
</target>
<path id="project.class.path">
<pathelement path="${CLASSPATH}" />
<!-- now add in the jar -->
<pathelement location="${dist}/lib/AntTest-${DSTAMP}.jar" />
<pathelement
location="/home/nedzel/temp/ant2/dist/lib/ant2.jar"/>
</path>
<target name="compile" depends="prepare">
<!-- compile from src into build -->
<javac srcdir="${src}" destdir="${build}" verbose="true" >
<classpath refid="project.class.path"/>
</javac>
</target>
<target name="dist" depends="compile">
<!-- create the dist directory -->
<mkdir dir="${dist}/lib" />
<jar jarfile="${dist}/lib/AntTest-${DSTAMP}.jar"
basedir="${build}" />
</target>
<target name="test" depends="dist">
<!-- run juit tests -->
<junit printsummary="yes">
<formatter type="plain" />
<test name="test.FooTest" />
<classpath>
<pathelement path="${CLASSPATH}" />
<!-- now add in the jar -->
<pathelement location="${dist}/lib/AntTest-${DSTAMP}.jar" />
<pathelement
location="/home/nedzel/temp/ant2/dist/lib/ant2.jar"/>
</classpath>
</junit>
</target>
<target name="clean">
<!-- delete build and dist dirs -->
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
</project>
Note that the Junit target for the previous build.xml
did not use refs. That version works. But when I
replace that with a ref, as shown below, I get an error:
<project name="AntTest" default="compile" basedir=".">
<!-- global properties -->
<property name="src" value="source" />
<property name="build" value="build" />
<property name="dist" value="dist" />
<target name="prepare">
<tstamp/>
<mkdir dir="${build}" />
</target>
<path id="project.class.path">
<pathelement path="${CLASSPATH}" />
<!-- now add in the jar -->
<pathelement location="${dist}/lib/AntTest-${DSTAMP}.jar" />
<pathelement
location="/home/nedzel/temp/ant2/dist/lib/ant2.jar"/>
</path>
<target name="compile" depends="prepare">
<!-- compile from src into build -->
<javac srcdir="${src}" destdir="${build}" verbose="true" >
<classpath refid="project.class.path"/>
</javac>
</target>
<target name="dist" depends="compile">
<!-- create the dist directory -->
<mkdir dir="${dist}/lib" />
<jar jarfile="${dist}/lib/AntTest-${DSTAMP}.jar"
basedir="${build}" />
</target>
<target name="test" depends="dist">
<!-- run juit tests -->
<junit printsummary="yes">
<formatter type="plain" />
<test name="test.FooTest" />
<classpath refid="project.class.path"/>
</junit>
</target>
<target name="clean">
<!-- delete build and dist dirs -->
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
</project>
Here's the typical classdef not found error:
Testsuite: test.FooTest
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
Caused an ERROR
test.FooTest
java.lang.ClassNotFoundException: test.FooTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:275)
at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
at java.lang.ClassLoader.findSystemClass(ClassLoader.java:582)
at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:340)
at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.<init>(JUnitTestRunner.java:161)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:231)
at org.apache.tools.ant.Target.execute(Target.java:142)
at org.apache.tools.ant.Project.runTarget(Project.java:818)
at org.apache.tools.ant.Project.executeTarget(Project.java:532)
at org.apache.tools.ant.Project.executeTargets(Project.java:506)
at org.apache.tools.ant.Main.runBuild(Main.java:420)
at org.apache.tools.ant.Main.main(Main.java:149)
Any ideas what the problem might be? I'm using Ant v1.2.
Thanks,
Jared Nedzel
[EMAIL PROTECTED]