JayZee
JayZee

Reputation: 860

Junit classpath in ant: problems with dirset

I'm getting troubles trying to use

<dirsets>

in my junit ant. This is the snippet of the classpath.

<target name="myTests" >     
    <junit haltonerror="true" haltonfailure="true" fork="true">
        <classpath>
            <dirset dir="/my/absolute/root/path/where/I/keep/compiled/classes">
                <include name="com/mycompany/mytests"/>
                </dirset>
                <pathelement location="my/path/to/jars/myjar1.jar" />  
                <pathelement location="my/path/to/jars/myjar2.jar" />  
                <!-- and so on -->  
             </classpath>
    <test name="com.mycompany.mytests.MyFirstTest" 
               outfile="${dir.report.test}/report_MyFirstTest">
                <formatter type="xml" />
</test> 
    </junit>
   </target> 

when I launch the test, after having successfully compiled all the code, ant complains:

java.lang.ClassNotFoundException: com.mycompany.mytests.MyFirstTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)

I tried with absolute, relative paths and it never works. My classpath consists on many jars specified with many and that that is never recognized. Where is my fault?

thanks

Upvotes: 0

Views: 593

Answers (1)

FrVaBe
FrVaBe

Reputation: 49341

I former times when I used ant I used the nested <classpath> element and specified the classpath with the path-like structure - like this:

<path id="project.test.classpath">
    <pathelement location="/my/absolute/root/path/where/I/keep/compiled/classes" />
    <fileset dir="/my/path/to/jars">
        <include name="**/*.jar" />
    </fileset>
</path>


<target name="myTests">
    <junit haltonerror="true" haltonfailure="true" fork="true">
        <classpath refid="project.test.classpath" />
        <test name="com.mycompany.mytests.MyFirstTest" outfile="${dir.report.test}/report_MyFirstTest">
            <formatter type="xml" />
        </test>
    </junit>
</target> 

Maybe that fit's also for you.

Upvotes: 1

Related Questions