Hi,
I am trying to use the junit task and am having no luck :(
I first got a NoClassDefFoundError on JUnitTestRunnerClass and then a
NoClassDefFoundError  for the BuildException  class.


I have tried the following:
1. Read the FAQ at
http://jakarta.apache.org/ant/faq.html#delegating-classloader This is very
insightfull and explained (or so I thought) the reasom I was getting the
initial NoClassDefFoundError I was getting. This was when I had placed
junit.jar AND jakarta-ant-1.3-optional.jar in my ANT_HOME/lib.

2. So I created a taskdef called ccJUnit and created a seperate folder for
junit.jar and jakarta-ant-1.3-optional.jar and moved these files there (from
ANT_HOME/lib)

My script looks like so:

   <taskdef name="ccJUnit"
classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask" >
     <classpath>
       <pathelement
path="C:\ccic\zSiteInspections\src\external\ant\1.3\optional\jakarta-ant-1.3
-optional.jar;C:\ccic\zSiteInspections\src\external\ant\1.3\optional\junit.j
ar" />
     </classpath>
   </taskdef>
   <target name="junit"  >
    <ccJUnit printsummary="true" fork="yes" haltonfailure="yes">
      <formatter type="plain" usefile="false"/>
      <test name ="com.crowncastle.sdm.common.xml.test.TestDownload"/>
      <classpath>
        <pathelement
path="${xalanClassPath};${commonClassPath};${log4jClassPath};${weblogicClass
Path};${strutsClassPath};C:\ccic\zSiteInspections\src\sdm\build\classes;C:\c
cic\zSiteInspections\src\external\ant\1.3\optional\jakarta-ant-1.3-optional.
jar;C:\ccic\zSiteInspections\src\external\ant\1.3\optional\junit.jar" />
      </classpath>
    </ccJUnit>
   </target>

Note that I have optional.jar and junit.jar in BOTH the classpath specified
by the taskdef AND the one to run my test.

Based on the FAQ, this shd have worked. But now my test failed and I got a
BuildException (this is quite possibily because of an error in my
application). But instead of getting a neat stack trace of my BuildException
, I get 

junit:
  [ccJUnit] Running com.crowncastle.sdm.common.xml.test.TestDownload
  [ccJUnit] java.lang.NoClassDefFoundError:
org/apache/tools/ant/BuildException


However the BuildException class lives in ant.jar. So the child  classloaer
SHOULD have found it. 
Can someone wxplain why BuildException class is not being found, despite
ant.jar existing in ANT_HOME/lib

3. So.. getting desperate (and going by a suggestion on this list), I turned
fork="no"
This resulted in  a ClassCastException.

junit:
  [ccJUnit] Running com.crowncastle.sdm.common.xml.test.TestDownload
  [ccJUnit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
  [ccJUnit] Testsuite: com.crowncastle.sdm.common.xml.test.TestDownload
  [ccJUnit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
  [ccJUnit]
  [ccJUnit]     Caused an ERROR
  [ccJUnit] junit.framework.TestSuite
  [ccJUnit] java.lang.ClassCastException: junit.framework.TestSuite
  [ccJUnit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.
<init>(JUnitTestRunner.java:178)
  [ccJUnit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execut
eInVM(JUnitTask.java:387)
  [ccJUnit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execut
e(JUnitTask.java:283)
  [ccJUnit]     at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execut
e(JUnitTask.java:263)
  [ccJUnit]     at org.apache.tools.ant.Target.execute(Target.java:153)
  [ccJUnit]     at org.apache.tools.ant.Project.runTarget(Project.java:898)
  [ccJUnit]     at
org.apache.tools.ant.Project.executeTarget(Project.java:536)
  [ccJUnit]     at
org.apache.tools.ant.Project.executeTargets(Project.java:510)

  [ccJUnit]     at org.apache.tools.ant.Main.runBuild(Main.java:421)
  [ccJUnit]     at org.apache.tools.ant.Main.main(Main.java:149)
  [ccJUnit]

BUILD FAILED

C:\ccic\zSiteInspections\src\sdm\build.xml:322: Test
com.crowncastle.sdm.common.
xml.test.TestDownload failed



4. So lastly I tried turning the verbose flag on... not much help there.


I suspect, I have to leave the fork="yes" attrib on as in point 2 above. I
amnot sure why ANT cannot find the BuildExeption tho'

Any pointers wil be greatly appreciated.

TIA 
Pankaj


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to