ant+junit java.lang.ClassNotFoundException

出现原因:

Ant 不会去加载TestCore。而只是加载了junit 库,junit再去加载TestCore,由于java 加载采用的是delegation 模式,而且junit 和TestCore不在同一个空间,所以junit 会调用parent 的classLoader 来加载
库,结果就出现上面的ClassNotFoundException 提示信息

 

解决方法:

(1)要写classpath,且classpath中要包含batchtest的目录路径,即${classes}
 <path id="classpath">
  <pathelement location="${classes}" />
  ……

 </path>

(2)junit这个task中,指明classpath
  <junit printsummary="on" haltonfailure="false" failureproperty="tests.failed" showoutput="true">
   <classpath refid="classpath" />
   <formatter type="xml" />
   <batchtest todir="${report.dir}" >
    <fileset dir="${classes}">
     <include name="**/TestCore.class"/>
    </fileset>
   </batchtest>
  </junit>

你可能感兴趣的:(ant+junit java.lang.ClassNotFoundException)