Я использую Cygwin под Windows XP и пытаюсь заставить Ant использовать JUnit без кодирования записей classpath для него. Документ для JUnit говорит, что я могу:
Поместите и junit.jar, и ant-junit.jar в ANT_HOME / lib.
Моя удобная копия JUnit в действии гласит:
Возможно, вы заметили, что вы явно не добавляете JAR JUnit в путь к классам. Помните, что когда вы установили Ant, вы скопировали JAR-файл JUnit в каталог $ {ANT_HOME} / lib, чтобы использовать задачу Ant junit. Поскольку junit.jar уже находится в вашем пути к классам, вам не нужно указывать его в задаче javac для компиляции ваших тестов.
$ ANT_HOME установлен в каталог установки Ant. В подкаталоге lib я вижу ant-junit.jar (установлен с Ant) и junit-4.9.jar (скопированный мной). Кажется хорошо, верно? Но этап компиляции теста завершается неудачно:
[javac] Compiling 1 source file to E:\tools\ctg\bin\test
[javac] E:\tools\ctg\src\test\TestAll.java:3: package org.junit does not exist
[javac] import org.junit.*;
и так далее. Я попытался переименовать junit-4.9.jar в junit.jar. Нет радости Я заглянул в файл jar и увидел, что пакет существует внутри него. Фактически, компиляция работает нормально, если я явно включу этот самый файл jar в путь к классу Ant.
BLEH. Есть мысли о том, что может быть не так? Благодаря.
РЕДАКТИРОВАТЬ: По запросу вот цель javac:
<path id="classpath">
<pathelement location="${app-bin}"/>
<pathelement location="${test-bin}"/>
<!--pathelement location="${junit-bin}"/-->
</path>
<target name="compile-test" depends="compile-app">
<javac srcdir="${test-src}"
destdir="${test-bin}"
source="${java}"
target="${java}"
debug="on"
includeantruntime="false">
<compilerarg value="-Xlint"/>
<classpath refid="classpath"/>
</javac>
</target>
Обратите внимание, что двоичный файл JUnit закомментирован. Моя цель - удалить его и запустить компиляцию.