Задача Junit ant - JUnitTask не найден - PullRequest
6 голосов
/ 19 марта 2012

Я пытаюсь запустить тест 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>

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

image

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

Ответы [ 3 ]

9 голосов
/ 19 марта 2012

Документация по junit немного скудна.
Если у вас есть ant-junit.jar за пределами ANT_HOME/lib, вам нужно определить задачу самостоятельно (<taskdef/> взято из FAQ , что также немного неверно, потому что оно говорит об использовании 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>

Документация:
Junit Task .


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

0 голосов
/ 02 июня 2018

нашел это в другом месте ...

(с использованием Mint на основе Debian)

sudo apt-get install ant-optional
0 голосов
/ 22 января 2018

Мое решение - создать переменную CLASSPATH в Jenkins System Configure и добавить путь ant-junit.jar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...