2011-01-15 2 views
3

Derzeit verwende ich eine IDE für alle meine Builds und Komponententests. Jetzt brauche ich eine Ameise. Ich habe ein paar einfache Ameisen-Build.xml-Skripte gefunden, aber sie haben keinen separaten Junit-Test/-Dir unterstützt. Meine Projekte sind wie folgt strukturiert:Einfaches Ameisen-Build-Skript, das src/und test/unterstützt?

 
src/ 
    com/foo/ 
    com/bar/ 

test/ -- Mirror of src/, with all *Test.java files. 
    com/foo/ 
    com/bar/ 

lib/ -- All Java libs, including junit 4. 

Wie kann ein Konstrukt ein kleiner Ant-Skript, das meine src/und Test/Java-Klassen erstellt dann alle Tests meiner JUnit läuft?

Antwort

6

Ich definiere <path> Elemente für jedes Ziel.

Dies bedeutet einen Auszug aus meinem Build-Datei ist, werden Sie einige Pfade und Eigenschaften anpassen müssen, aber Sie bekommen die Idee kann:

<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> 

<target name="compile"> 
    <javac destdir="bin"> 
     <src path="src"/> 
     <classpath refid="compile.path"/> 
    </javac> 
</target> 

<target name="compileUnitTests" depends="compile"> 
    <javac srcdir="test/" destdir="bin"> 
     <classpath refid="unit.test.path"/> 
    </javac> 
</target> 

<target name="runUnitTests" depends="compileUnitTests"> 
    <junit printsummary="yes" haltonfailure="no"> 
    <jvmarg value="-Dfile.encoding=UTF-8"/> 
     <classpath refid="unit.test.path"/> 

     <formatter type="xml"/> 

     <batchtest fork="yes" todir="${this.report}"> 
      <fileset dir="test"> 
       <include name="${test.pattern}"/> 
       <exclude name="**/AllTests.class"/> 
       <exclude name="**/*$*.class"/> 
      </fileset> 
     </batchtest> 
    </junit> 
</target> 

Und wenn Sie verfeinern diese auf Ihre Bedürfnisse, wie cotton.m sagt, geh und lies die ant task docs. Die Verwendung von ant mit Ihrer spezifischen Verzeichnisstruktur erfordert einige Kenntnisse des Tools. Erwarten Sie nicht, dass Sie leicht vorgefertigte Beispiele finden, die genau Ihren Anforderungen entsprechen.

0

Ich verstehe die Frage nicht. Fragen Sie, wie Sie das Standardziel festlegen? Wählen Sie aus, welches Ziel beim Ausführen ausgeführt werden soll oder wissen Sie nicht, wie man build.xml-Dateien schreibt? Es ist wirklich nicht so schwer. Siehe http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html und http://ant.apache.org/manual/

+0

Sieht aus wie es unter der Annahme, dass alle Test.java-Dateien in der Quelle sind?

+0

Die Frage ist ziemlich einfach zu verstehen. Ja wirklich! Nichts ist so schwer. Es ist nur eine Frage der Zeit. Ich weiß es nicht, aber auf hoher Ebene weiß ich, was getan werden muss, und ich könnte in den nächsten Stunden darauf knallen und alle Fehlermeldungen googeln. Ich vermute jedoch, dass das Problem tausendfach gelöst wurde. –

+0

Wo ist diese Datei? Und wo setzt du diese Eigenschaft? Sie können mehrere Eigenschaften richtig haben? (Und sehen Sie die andere Antwort). Ich denke, die Antwort ist nur zu lernen, wie man eigene Build-Dateien schreibt. –