Ho un build.xml che mi consente di eseguire i test di junit. Qui è la parte rilevante:Ant classpath e junit.jar
<path id="JUnit 4.libraryclasspath">
<pathelement location="../../../../../eclipse/plugins/org.junit4_4.5.0.v20090824/junit.jar"/>
<pathelement location="../../../../../eclipse/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar"/>
</path>
<path id="MyProject.classpath">
<pathelement location="bin"/>
<path refid="JUnit 4.libraryclasspath"/>
</path>
<target name="run_unit_tests" depends="build">
<mkdir dir="${junit.output.dir}"/>
<junit printsummary="yes" haltonfailure="no">
<classpath refid="MyProject.classpath" />
<formatter type="xml"/>
<batchtest todir="${junit.output.dir}">
<fileset dir="${src}">
<include name="**/*Test*.java"/>
</fileset>
</batchtest>
</junit>
</target>
Se sostituisco la linea:
<pathelement location="../../../../../eclipse/plugins/org.junit4_4.5.0.v20090824/junit.jar"/>
con
<pathelement location="${eclipse.home}/plugins/org.junit4_4.5.0.v20090824/junit.jar"/>
Il cambiamento rompe il percorso di classe. Viene visualizzato il seguente errore:
The
<classpath>
for<junit>
must include junit.jar if not in Ant's own classpath
Per quanto ho capito, l'attributo posizione deve contenere lo stesso valore in entrambi i casi. Quindi quale può essere la ragione?
Come una domanda a parte, questo file di build non funzionerà su un ambiente con diversa versione junit (il percorso si interromperà). È possibile aggiungere un percorso "generale" a junit.jar?
eclipse.home è stato espanso correttamente? –