Ant + Junit Issues



我正试图让Junit与Ant合作。我遇到了关于这个话题的问题。我想某个地方有个小错误,但我想不通。这是我的构建文件:

        <?xml version="1.0" encoding="UTF-8"?>
    <project name="IvleFileSync" default="dist" basedir=".">
    <description>
        simple example build file
    </description>
      <!-- set global properties for this build -->
      <property name="src" location="src"/>
      <property name="build" location="build"/>
      <property name="dist"  location="dist"/>
        <!-- Variables used for JUnit testing -->
        <property name="test.dir" location="test" />
        <property name="test.report.dir" location="test-reports" />
     <path id="junit-classpath">
    <fileset dir="${test.dir}">
        <include name = "*" />
    </fileset>
     </path>
    <path id="files-classpath">
    <fileset dir="/usr/lib" >
        <include name="*.jar"/>
    </fileset>
    </path> 
      <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
    <mkdir dir="${test.report.dir}" />
      </target>
      <target name="compile" depends="init" description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
     <javac srcdir="${src}" destdir="${build}"> 
           <classpath>
        <path refid="files-classpath" />
    </classpath> 
    </javac>
       </target>
      <target name="dist" depends="compile"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>
    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/IvleFileSync-${DSTAMP}.jar" basedir="${build}"/>
      </target>
    <target name="compile-test" depends="compile" description="compile the tests " >
       <!-- Compile the java code from ${src} into ${build} -->
       <javac srcdir="${test.dir}" destdir="${build}"> 
         <classpath>
          <path refid="files-classpath" />
       </classpath> 
       </javac>
    </target>
    <target name="test" depends="compile-test" description="Execute Unit Tests" >
      <junit printsummary="yes" fork="yes" haltonfailure="yes" showoutput="false">
       <classpath >
    <path refid="files-classpath" />
    <path refid= "junit-classpath" />
       </classpath>
    <batchtest fork="yes" todir="${test.report.dir}/"> 
            <formatter type="xml"/> 
            <fileset dir="${test.dir}"> 
                <include name="*Test*.java"/> 
            </fileset> 
    </batchtest> 
      </junit>
    </target>
      <target name="clean"
        description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${test.report.dir}" />
    <delete dir="${dist}"/>
      </target>
    </project>

我在/test目录中有测试文件,我也把jar放在了ANT_HOME/lib 中

这不起作用,当我挖掘测试结果/…时,我会收到这个错误。。。。xml

<error message="NewEmptyJUnitTest"     type="java.lang.ClassNotFoundException">java.lang.ClassNotFoundException: NewEmptyJUnitTest
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)

谢谢你帮我。。。

junit任务的类路径不包括编译测试目标的输出。对JUnit类路径使用以下内容:
<classpath>
  <pathelement path="${build}"/>
  <path refid="files-classpath" />
  <path refid="junit-classpath" />
</classpath>

您忘记将自己的类("build")添加到"test"目标中。

相关内容

  • 没有找到相关文章

最新更新