pasé un par de horas con este problema hoy en día. Tenía los archivos .jar todo especificadas en Eclipse a través del Proyecto | Propiedades | Java Build Path, pero todavía estaba recibiendo el error
<classpath> for <junit> must include junit.jar if not in Ant's own classpath
cuando se ejecuta Ant desde Eclipse.
Ejecutar Ant desde la línea de comandos funcionaría bien (tenía todo en la variable de entorno classpath).
Pero en Eclipse lo único que funcionaba era indicar explícitamente la ruta de clases dentro de los elementos, por ejemplo:
<path id="JUnit 4.libraryclasspath">
<pathelement location="...\plugins\org.junit_4.11.0.v201303080030\junit.jar"/>
<pathelement location="...\plugins\org.hamcrest.core_1.3.0.v201303031735.jar"/>
<pathelement location="...\lib\ant-junit4.jar"/>
</path>
<path id="Ant1.classpath">
<pathelement location="bin"/>
<pathelement location="."/>
<path refid="JUnit 4.libraryclasspath"/>
</path>
... stuff...
<target name="test1" depends="compile">
<junit>
<classpath refid="Ant1.classpath"/>
</junit>
</target>
sin especificar explícitamente la ruta de clase dentro del elemento junit, se rompería en Eclipse cada vez, incluso sólo una referencia al descubierto
<junit/>
no soy un experto, sólo un informe de lo que funcionó en la actualidad.
-ctb