2013-08-23 2 views
1

build.xml을 처음 실행할 때마다 생성 된 보고서가 비어 있습니다. 이제 다시 동일한 build.xml을 두 번째로 실행하면 이전 실행의 타임 스탬프가 표시됩니다. 사람이 상황을Junit 보고서 테스트 결과가 공백으로 표시됩니다.

의 build.xml을 이해 좀 도와 줄래 : 당신의 목표는 원하는 순서로 실행되지 않는 것처럼

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!-- WARNING: Eclipse auto-generated file. 
      Any modifications will be overwritten. 
      To include a user specific buildfile here, simply create one in the same 
      directory with the processing instruction <?eclipse.ant.import?> 
      as the first entry and export the buildfile again. --> 
<project basedir="." default="build" name="test"> 
<property environment="env"/> 
<property name="ECLIPSE_HOME" value="C:/Users/Downloads/eclipse"/> 
<property name="junit.output.dir" value="junit"/> 
<property name="debuglevel" value="source,lines,vars"/> 
<property name="target" value="1.6"/> 
<property name="source" value="1.6"/> 
<path id="test.classpath"> 
    <pathelement location="bin"/> 
    <pathelement location="../lib/junit-4.11.jar"/> 
    <pathelement location="../lib/jxl-2.6.jar"/> 
    <pathelement location="../lib/selenium-java-client-driver-1.0.2.jar"/> 
    <pathelement location="../lib/selenium-server-standalone-2.31.0.jar"/> 
    <pathelement location="../lib/xalan-2.7.1.jar"/> 
    <pathelement location="C:/Users/Downloads/eclipse/plugins/org.apache.ant_1.7.1.v20090120-1145/lib/ant-junit.jar"/> 
</path> 
<target name="init"> 
    <mkdir dir="bin"/> 
    <mkdir dir="build/classes" /> 
    <mkdir dir="dist"/> 
</target> 
<target name ="compile" depends="init"> 
<javac srcdir="src" destdir="build/classes"/> 
</target> 
<target name ="jar" depends="compile"> 
    <jar destfile="dist/test.jar" basedir="build/classes" /> 
</target> 
<target name="clean"> 
    <delete dir="bin"/> 
    <delete dir="dist" /> 
</target> 
<target depends="clean" name="cleanall"/> 
<target depends="build-subprojects,build-project" name="build"/> 
<target name="build-subprojects"/> 
<target depends="init" name="build-project"> 
    <echo message="${ant.project.name}: ${ant.file}"/> 
    <javac debug="true" debuglevel="${debuglevel}" destdir="bin" source="${source}" target="${target}" includeantruntime="false"> 
     <src path="src"/> 
     <classpath refid="test.classpath"/> 
    </javac> 
</target> 
<target description="Build all projects which reference this project. Useful to propagate changes." name="build-refprojects"/> 
<target description="copy Eclipse compiler jars to ant lib directory" name="init-eclipse-compiler"> 
    <copy todir="${ant.library.dir}"> 
     <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/> 
    </copy> 
    <unzip dest="${ant.library.dir}"> 
     <patternset includes="jdtCompilerAdapter.jar"/> 
     <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/> 
    </unzip> 
</target> 
<target description="compile project with Eclipse compiler" name="build-eclipse-compiler"> 
    <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> 
    <antcall target="build"/> 
</target> 
<target name="test"> 
    <mkdir dir="${junit.output.dir}"/> 
    <junit fork="yes" printsummary="withOutAndErr"> 
     <formatter type="xml"/> 
     <test name="AllTests" todir="${junit.output.dir}/Project"/> 
     <classpath refid="test.classpath"/> 
    </junit> 
</target> 
<target name="junitreport"> 
    <junitreport todir="${junit.output.dir}"> 
     <fileset dir="${junit.output.dir}"> 
      <include name="TEST-*.xml"/> 
     </fileset> 
     <report format="frames" todir="${junit.output.dir}/Project"/> 
    </junitreport> 
</target> 

답변

0

그것은 소리. Ant 태스크 자체에 의존성을 지정해야한다. 예를 들어 unitreport가이 예제의 테스트에 의존한다는 사실을 추가했습니다.

<target name="test"> 
     <mkdir dir="${junit.output.dir}"/> 
     <junit fork="yes" printsummary="withOutAndErr"> 
      <formatter type="xml"/> 
      <test name="AllTests" todir="${junit.output.dir}/Project"/> 
      <classpath refid="test.classpath"/> 
     </junit> 
    </target> 
    <target name="junitreport" depends="test"> 
     <junitreport todir="${junit.output.dir}"> 
      <fileset dir="${junit.output.dir}"> 
       <include name="TEST-*.xml"/> 
      </fileset> 
      <report format="frames" todir="${junit.output.dir}/Project"/> 
     </junitreport> 
    </target> 
</project> 
+0

그래, 그런 junit 보고서를 작성하는 것이 좋습니다.이 스 니펫을 시도 할 것입니다. :) – user2376425

+0

Jeanne :이 스 니펫을 시도 했으므로 잘 실행됩니다. 하지만 이제는 테스트를 두 번 실행하고 두 번째 실행의 타임 스탬프를 표시하고 문제는 – user2376425

+0

Ant는 어떻게 실행하고 있습니까? 어떤 명령을 사용하고 있습니까? (실행중인 타겟이 표시됩니다) –

관련 문제