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]

Reply via email to