Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Junit ant task - JUnitTask was not found

Tags:

junit

ant

I'm trying to run Junit test from my ant build.xml file. I read here that you can use a junit.jar file instead of using the .jar that is located in the ant.home/lib directory. This is what I want to do since our Jenkins autobuild set-up has no junit.jar file in his ant lib directory.

Even with the simpliest project, I'm always getting this error that the JUnitTask was not found. If you look at my build.xml file, it is clearly included and used in the junit task.

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>

The small example I made to test things out looks like this :

image

EDIT : Updated based on answer

like image 921
David Avatar asked Mar 19 '12 16:03

David


2 Answers

The junit-Documentation is a bit sparse.
If you have ant-junit.jar outside ANT_HOME/lib you need to define the task yourself (the <taskdef/> is from the FAQ, which is also a bit wrong, because it tells to use class="...", which does not exist as an attribute to <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>

This can be used to check the path:

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

Documentation:
junit task.


Additional information can be found in this chat transcript

like image 195
oers Avatar answered Nov 03 '22 02:11

oers


found this elsewhere...

(using Mint, based on Debian)

sudo apt-get install ant-optional
like image 34
Stevko Avatar answered Nov 03 '22 00:11

Stevko