2010-09-13 6 views
2

J'ai utilisé ce fichier exact Build.xml. J'ai eu des problèmes au début en utilisant la tâche de junit avec ça, mais j'ai compris ces problèmes il y a quelques mois.Problème de classpath pour mon fichier Ant Build

Récemment, j'ai reçu le message d'erreur all to common lorsque j'ai exécuté mon fichier de construction avec la tâche de test.

test: 
[junit] Testsuite: com.mmz.mvc.test.AgentDAOTest 
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec 
[junit] Null Test: Caused an ERROR 
[junit] com.mmz.mvc.test.AgentDAOTest 
[junit] java.lang.ClassNotFoundException: com.mmz.mvc.test.AgentDAOTest 
[junit]  at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
[junit]  at java.lang.Class.forName0(Native Method) 
[junit]  at java.lang.Class.forName(Class.java:247) 
[junit]  at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32) 
[junit]  at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423) 
[junit]  at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137) 

BUILD FAILED 
C:\Users\myName\Documents\Java\mmz\WEB-INF\build.xml:45: 
Testcom.mmz.mvc.test.AgentDAOTest failed 

je sais que ce problème est lié à mon classpath, mais je ne sais pas pourquoi cela tout d'un brusque rupture quand il travaille depuis si longtemps.

Mon build suit ressemble à ce qui suit.

<property file="build.properties"/> 
<property name="src.dir" value="src"/> 
<property name="build.dir" value="classes"/> 
<property name="web.dir" value="war"/> 

<path id="build.classpath"> 
    <fileset dir="lib"> 
     <include name="*.jar"/> 
    </fileset> 
    <fileset dir="${appserver.lib}"> 
     <include name="servlet*.jar"/> 
    </fileset> 
    <pathelement path="${build.dir}"/> 
    <pathelement path="${test.dir}"/> 
</path> 

<path id="classpath.base"/> 
<path id="classpath.test"> 
<pathelement location="c:/ant/lib/junit.jar" /> 
<pathelement location="${build.dir}"/> 
<pathelement location="${src.dir}"/> 
<pathelement location="${test.dir}" /> 
<pathelement location="classes"/> 
<path refid="classpath.base" /> 
</path> 

<target name="build"> 
    <mkdir dir="${build.dir}"/> 
    <mkdir dir="${test.dir}"/> 
    <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true"> 
     <src path="${src.dir}"/> 
     <classpath refid="build.classpath"/> 
    </javac> 
    <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true"> 
     <src path="${test.dir}"/> 
     <classpath refid="build.classpath"/> 
    </javac> 
    </target> 

    <target name="test"> 
    <junit haltonfailure="true"> 
     <classpath refid="classpath.test" /> 
     <classpath refid="build.classpath"/> 
     <formatter type="brief" usefile="false" /> 
     <test name="com.mmz.mvc.test.AgentDAOTest"/> 
     <test name="com.mmz.mvc.test.AgentProfileDAOTest"/> 
     <test name="com.mmz.mvc.test.BuyerDAOTest"/> 
     <test name="com.mmz.mvc.test.BuyerSellerDAOTest"/> 
     <test name="com.mmz.mvc.test.BaseDAOTest"/> 
     <test name="com.mmz.mvc.test.MemberDAOTest"/> 
     <test name="com.mmz.mvc.test.SellerDAOTest"/> 
    </junit> 

Je ne suis pas très bon avec les fichiers de construction et je ne suis pas très bon à comprendre la façon de classpaths de configuration et tout donc si quelqu'un pouvait aider, je vous serais reconnaissant .

Répondre

2

Ressemble à un fichier jar manquant, contenant la classe "com.mmz.mvc.test.AgentDAOTest". La lecture de votre fichier de construction suggère que le fichier jar se trouve dans votre répertoire "lib".

Je suppose, bien sûr, que cette classe n'est pas un fichier source Java manquant situé sous vous « src » ou « $ {} test.dir » répertoires .....

+0

Ce qui est vraiment bizarre , est-ce que je suis entré et ai changé l'ordre des tests déclarés à l'intérieur de la tâche de test, et cela ne me posera pas de problème? Voyez-vous des problèmes évidents avec le fichier de construction. – TheJediCowboy

+0

@CitadelCSAlum: Si oui, est-ce que AgentDAOTest a une dépendance sur l'une des autres classes de test? Ne devrait pas être - mais juste vérifier. – JoseK

Questions connexes