Задача Junit ant - JUnitTask не найден

Я пытаюсь запустить тест Junit из файла ant build.xml. Я читаюВот что вы можете использовать файл junit.jar вместо .jar, который находится в каталоге ant.home / lib. Это то, что я хочу сделать, так как наша установка автоматической сборки Jenkins не имеет файла junit.jar в его каталоге ant lib.

Даже с самым простым проектом я всегда получаю эту ошибку, что JUnitTask не был найден. Если вы посмотрите на мой файл build.xml, он явно включен и используется в задаче junit.

build.xml:

<project default="all">
    <property name="TALK" value="false" />

    <path id="classpath.base">
    </path>
    <path id="classpath.test">
        <fileset dir="." includes="**/*.jar" />
    </path>

    <target name="compile-test">
        <javac srcdir="src" verbose="${TALK}">
            <classpath refid="classpath.test" />
        </javac>
    </target>

    <target name="test" depends="compile-test">
        <junit>
            <classpath refid="classpath.test" />
            <formatter type="brief" usefile="false" />
            <test name="TestClass" />
        </junit>
    </target>

    <target name="all" depends="test" />
</project>

Небольшой пример, который я сделал для проверки, выглядит так:

РЕДАКТИРОВАТЬ: Обновлено на основе ответа

Ответы на вопрос(3)

Решение Вопроса

Документация по junit немного скудна.
Если у вас есть ant-junit.jar снаружиANT_HOME/lib Вы должны определить задачу самостоятельно (<taskdef/> отВопросы-Ответы, что тоже немного не так, потому что говорит использоватьclass="...", который не существует в качестве атрибута<taskdef />):

<path id="classpath.test">
    <fileset dir="." includes="*junit.jar" />
</path>

<taskdef name="junit"
  classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask">
  <classpath refid="classpath.test"/>
</taskdef>

Это может быть использовано для проверки пути:

<pathconvert  property="testoutput" refid="classpath.test"/>
<echo>Path = ${testoutput}</echo>

Документация:
задача джунит.

Дополнительную информацию можно найти вэта стенограмма чата

 oers20 мар. 2012 г., 13:22
@david вы можете иметь ant-junit.jar вне папки lib, но вы должны включить его в определение classpath. Вам нужно 2 библиотеки: junit.jar и ant-junit.jar (что делает так работать junit.jar, так сказать)
 David19 мар. 2012 г., 20:22
Не сработало.
 David20 мар. 2012 г., 13:19
Нет, я не знаю, но если вы прочитаете строку, в которой говорится: 2. Не помещайте ни в ANT_HOME / lib, а вместо этого включайте их расположение в переменную среды CLASSPATH.
 oers19 мар. 2012 г., 22:36
@ Давид, у тебя есть ant-junit.jar int ant_home / lib? Тебе тоже нужна эта библиотека. Смотрите документы:ant.apache.org/manual/Tasks/junit.html
 David20 мар. 2012 г., 13:40
Когда вы говорите, он должен быть определен как classpath, вы имеете в виду classpath, который я использую в моем файле build.xml? Если так, посмотрите на изменения, которые я сделал выше, это все еще не работает :(

и добавить путь ant-junit.jar.

в другом месте...

(используя Mint, на основе Debian)

sudo apt-get install ant-optional

Ваш ответ на вопрос