2012-04-15 6 views
14

Das Problem: Die Tests werden (scheinbar) nicht ausgeführtAnt liefen alle jUnit testen

Schritt 1: Kompilieren Quelle ist

<target name="compile" depends="init" description="compile the source "> 
    <javac srcdir="${src}" destdir="${build}" includeantruntime="true" nowarn="yes" debug="true" /> 
    <javac srcdir="${src}" destdir="${bin}" includeantruntime="true" nowarn="yes" debug="true" /> 
</target> 

Schritt 2: Kompilieren Tests sind

Schritt 3: Suchen Sie Test.class (es) und führen Sie sie

<target name="test" depends="compileTest"> 
     <junit> 
      <formatter type="plain" usefile="false" /> 
      <formatter type="plain" /> 
      <batchtest> 
       <fileset dir="${bin}" includes="**/Test*.class" /> 
      </batchtest> 
     </junit> 
    </target> 

Ausgang:

Buildfile: /Users/xx/Documents/repositories/app/build.xml 
clean: 
    [delete] Deleting directory /Users/xx/Documents/repositories/app/build 
    [delete] Deleting directory /Users/xx/Documents/repositories/app/bin 
init: 
    [mkdir] Created dir: /Users/xx/Documents/repositories/app/build 
    [mkdir] Created dir: /Users/xx/Documents/repositories/app/bin 
compile: 
    [javac] Compiling 145 source files to /Users/xx/Documents/repositories/app/build 
    [javac] Compiling 145 source files to /Users/xx/Documents/repositories/app/bin 
compileTest: 
    [javac] Compiling 24 source files to /Users/xx/Documents/repositories/app/bin 
test: 
dist: 
    [delete] Deleting: /Users/xx/Documents/repositories/app/dist/app.jar 
     [jar] Building jar: /Users/xx/Documents/repositories/app/dist/app.jar 
    [copy] Copying 1 file to /Users/xx/Documents/repositories/app/dist 
    [delete] Deleting: /Users/xx/Documents/repositories/app/dist/app.war 
     [war] Building war: /Users/xx/Documents/repositories/app/dist/app.war 
    [copy] Copying 1 file to /Users/xx/Documents/repositories/app/dist 
BUILD SUCCESSFUL 
Total time: 5 seconds 

Was bin ich bitte?

Antwort

22

Ich glaube, Sie batchtest innerhalb junit Aufgabe verwenden können:

<target name="test" depends="compileTest"> 
    <junit> 
    <classpath> 
     <pathelement location="bin" />  
     <pathelement location="lib/junit-4.10.jar"/> 
    </classpath>  
    <batchtest> 
     <fileset dir="${test}"> 
      <include name="**/*Test*" /> 
     </fileset> 
    </batchtest> 
    <formatter type="brief" usefile="false"/> 
    </junit> 
</target> 

Hinweis folgende:

  • In fileset dir="${test}" in das Quellverzeichnis für die Tests zeigen soll.
  • In include name="**/*Test*" sollten Sie nicht angeben .class Erweiterung; Es sollte .java oder nichts sein.
  • Sie müssen das Testausgabeverzeichnis als "Klassenpfad" für junit Taskelement hinzufügen.

Ich hatte einen Test mit einem einfachen Projekt und mit der gleichen Konfiguration bekam ich die kurzen Ergebnisse. Ich habe Apache Ant 1.7.1 benutzt.

+0

Dies scheint nur Tests aus dem ersten Paket in test-src auszuführen. Gibt es eine Möglichkeit, den Bericht auf "Ran 500 Tests, 0 Fehler 0 Fehler" zu reduzieren? – JAM

+0

Noch keine Zusammenfassung erscheint – JAM

+0

Meine Frage aktualisiert, um gesamte ANT-Skript enthalten – JAM

1

Use "batchtest" wie folgt aus:

<batchtest> 
    <fileset dir="${tst-dir}" includes="**/Test*.class" /> 
    </batchtest> 

Beispiel derzeit über here.

EDIT:

Zum Drucken Zusammenfassung ant junit task does not report detail und this

Hinweis sehen, dass Sie nicht mehr benötigen, um die Attribute printsummary="yes" und showoutput="true" in der junit Aufgabe. Der Formatierer kümmert sich jetzt um die Ausgabe.

<target name="test" depends="compileTest"> 
    <junit> 
     <formatter type="plain" usefile="false" /> <!-- to screen --> 
     <formatter type="plain" /> <!-- to file --> 

     <batchtest> 
      <fileset dir="${bin}" includes="**/Test*.class" /> 
     </batchtest> 
    </junit> 
</target> 
+0

Fügen Sie innerhalb des Junit-Tags vor dem batchtest-Tag hinzu –

+0

@JAM siehe EDIT über –

+0

Rechts. Ich hatte das :) – JAM

Verwandte Themen