Ant测试编译崩溃

时间:2015-05-13 07:02:59

标签: testing ant junit build compilation

我正在尝试编译一个名为TestsVorgabe的类,它代表一个包含五个其他测试的测试套件。它适用于正常的JUnit测试,但是当我尝试使用ant编译它时,我得到了一个

错误:找不到符号

这样的项目结构:

  1. project / src =>类
  2. project / test => TestClasses
  3. 为了确保我真正得到正确的.jars并包含它们,我有两种方式将它们传递给Ant。我的Ant构建文件如下所示:

      <property name="src.dir" location="src"/>
      <property name="build.dir" location="build"/>
      <property name="dist.dir"  location="dist"/>
      <property name="docs.dir" location="docs"/>
      <property name="test.dir" location="test"/>
      <property name="buildtest.dir" location="buildtest"/>
    	
      <path id="src.path">    
    	    <pathelement path="src/"/>
      </path>
    	
      <path id="compile.path">
    	    <path refid="src.path"/>
    	    <fileset dir="lib/">
    	        <include name="**/*.jar"/>
    	    </fileset>
      </path>
    
      <path id="unit.test.path">
    	    <path refid="compile.path"/>
    	    <pathelement path="test/"/>
      </path>
    	
      <!--Löscht die erstellten Verzeichnisse und Sourcen-->
      <target name="clean">
      	<delete dir="${build.dir}"/>
      	<delete dir="${buildtest.dir}"/>
        <delete dir="${dist.dir}"/>
        <delete dir="${docs.dir}"/>
      </target>
       
      <!--Erzstellt die Verzeichnisstruktur-->
      <target name="init">
      	<mkdir dir="${build.dir}"/>
      	<mkdir dir="${buildtest.dir}"/>
      	<mkdir dir="${dist.dir}"/>
      	<mkdir dir="${docs.dir}"/>
      	<mkdir dir="${dist.dir}/dist2"/>
      </target>
    
      <!--Kompiliert die Programm-Klassen-->
      <target name="compile">
      	<javac includeantruntime="false" srcdir="${src.dir}" destdir="${build.dir}">
      		<classpath refid="compile.path"/>
      	</javac>
      </target>
    	
      <target name="compileUnitTests" depends="compile">
    	    <javac srcdir="test/" destdir="${buildtest.dir}">
    	        <classpath refid="unit.test.path"/>
    	    </javac>
      </target>
    
    	
      <target name="runUnitTests" depends="compile">
    	    <junit printsummary="yes" haltonfailure="no">
    	    <jvmarg value="-Dfile.encoding=UTF-8"/>
    	        <classpath refid="unit.test.path"/>
    	    	<formatter type="plain"/>
    	    	<batchtest fork="yes" todir="${buildtest.dir}">
    	    	            <fileset dir="${test.dir}">
    	    	                <include name="**/TestsVorgabe.java"/>
    	    	                <exclude name="**/AllTests.class"/>
    	    	                <exclude name="**/*$*.class"/>
    	    	            </fileset>
    	    	</batchtest>
    	    </junit>
      </target>

    我已经尝试了许多方法来包含.jars和许多编译测试的方法,但似乎没有任何工作,所以我最终得到了这个(不要工作)。

1 个答案:

答案 0 :(得分:0)

您使用javac将源代码编译到${build.dir}但是您没有将它添加到junit任务的类路径中,这是来自documentation的示例:

<classpath>
    <pathelement location="${build.tests}"/>
    <pathelement path="${java.class.path}"/>
  </classpath>

或检查this example(在示例中:${web.classes.dir})。

尝试将build.dir添加到junit任务类路径中,我希望这会有所帮助!